[FondInfo] Re:

Eduardo Calabrese educal43 at gmail.com
Tue Feb 8 15:28:37 CET 2005


La funzione main e' piu' corretta cosi':


int main()
{
char word[80];
while (cin >> word)
   {cout << "\t\"" << word << "\"\n";}
cout << "Fine del programma. " << endl;
return 0;
}


Evidentemente  cin >> word non modifica il valore di word (array di
char) se ci troviamo alla fine del file.  A proposito  Ctrl-Z 
introduce un EOF (fine file o fine dati, non fine stringa!).

-- 
Cordiali saluti,
Eduardo Calabrese



On Tue,  8 Feb 2005 13:53:12 +0100, ..... at studenti.unipr.it> wrote:
> Buongiorno prof. Calabrese, avevo un problema con la manipolazione delle
> stringhe in C++. Più precisamente,
> quando schiaccio la combinazione per il termine stringa CTRL+Z, mi viene
> visualizzato sullo schermo la
> combinazione ^Z, ma quando premo "invio" NON termina l'inserimento in maniera
> normale ma l'output e' costituito
> da una ripetizione continua dell'ultimo carattere inserito.
> Il computer su cui lavoro ha S.O. Windows XP Home edition, il compilatore C++
> che mi da' il problema e' il
> BLOODSHED DEV C++ versione 4.9.8.0. Ho installato anche un'altro compilatore
> C++, piu' vecchio, il DEV C++ 4.
> Su quest'ultimo, la combinazione CTRL+C ha lo stesso effetto della
> combinazione CTRL+Z, ovvero termina immediatamente il
> programma.
> 
> Ad esempio, l'output del seguente programma:
> 
> #include<iostream>
> #include<cmath>
> #include<ctime>
> #include<cstring>
> #include<iomanip>
> using namespace std;
> int main()
> {
> char word[80];
> cin >> word;
> while (*word)
>    {cout << "\t\"" << word << "\"\n";
>    cin >> word;}
> cout << "Fine del programma. " << endl;
> return 0;
> }
> 
> con in ingresso la stringa A, stampa giustamente "A", ma una volta che
> schiaccio CTRL+Z, il programma dovrebbe interrompere il ciclo while() e
> stampare Fine del programma. Invece stampa continuamente (bisogna schiacciare
> CTRL+C per fermare l'esecuzione)
>        "A"
>        "A"
>        "A"
>        "A"
>        ...
>        "A"
>        "A"
>        ...
> e non si ferma più, se non si schiaccia appunto CTRL+C.
> Come faccio? Sull'Hubbard c'e' anche scritto che il carattere di fine stringa
> si puo' ottenere come CTRL-@, ma anche
> questo non funziona.
> Grazie per la disponibilita'.
> il mio indirizzo e-mail e' ... at studenti.unipr.it
> 
>


More information about the FondInformatica mailing list