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...