Ho scritto questo programma (assai grezzo) pre giusitifcare del testo, solo che mandandolo in esecuzione, una volta che ho scritto il testo di una riga e premo invio, invece di passare alla scrittura della riga successiva chiude la schermata del DOS e termina il programma, che invece dovrebbe terminare, dato il mio ciclo, inserendo il carattere '*' .
Ecco il programma:
codice:#include <stdio.h> #include <iostream.h> #include <conio.h> #include <stdlib.h> void clear_buffer(), giustifica(); const int n=5; int i; char testo[80], testo2[80]; int main(){ cout<<"Inserire il testo (Premere * per terminare):\n\n"; i=0; do{ cin.get(testo,80,'\n'); clear_buffer(); if(testo[0] != '*') giustifica(); i++; }while((i<n)&&(testo[0]!='*')); getch(); return 0; } void clear_buffer(){ char car; do{ car=cin.get(); }while(car != '\n'); } void giustifica(){ int j, conta_caratteri, conta_parole, num_spazi, spa_ins, k, l; // conteggio dei caratteri e delle parole for(j=0;j<80;j++){ if(testo[j]!=' ') conta_caratteri++; else conta_parole++; } // determ. spazi num_spazi=80-conta_caratteri; spa_ins=conta_parole/num_spazi; // inserimento spazi k=0; while(testo[k]!='\n'){ if(testo[k]==' '){ l=0; while(l<spa_ins){ testo2[k+l]=' '; l++; } } else testo2[k]=testo[k]; k++; } }
Uso Dev-C++....sarà ò'istruzione cin.get???
Perchè facendolo a scuola in lab, con il turbo-c++ funzionava...

Rispondi quotando