Newsgroup: it.comp.lang.c++
Titolo: Problema con semplice codice !!

Ciao a tutti, ho immesso il seguente codice preso dal libro:
#include <iostream>
#include <string>
int main ()
{
    stringa parola;
    while (cin >> parola)
            cout << parola letta: " << parola << '\n';
cout << "non ci sono più parole da leggere.\n";
return 0;
}
...scrivendo : pluto paperino topolino , il programma dovrebbe stamparle e
poi aggiungere l'ultima frase....funziona tutto tranne l'ultima frase; il
libro dice che (cin >> parola) risulta falsa quando raggiunge
l'end-of-file....però così sembra non raggiungerlo mai !
C'è qualcosa di sbagliato ?
Ciao
Alessandro

 C'č qualcosa di sbagliato ?
No, nulla di sbagliato. Lo hai detto tu stesso: "quando raggiunge
l'end-of-file".
Scommetto che scrivi: pluto paperino topolino e poi premi return(invio),
vero ?
No! C'e' scritto end of file (EOF)! Devi digitare: pluto paperino topolino e
poi premere CTRL+Z.
Alex
P.S. fammi sapere ...

 P.S. fammi sapere ...
Fermo lě...speriamo che sei ancora davanti al monitor.....
...neanche con CTRL+Z funziona.....mi scrive semplicemente ^Z o ^C in caso
di CTRL+C
che posso fare ?....pensavo anche io fosse la soluzione..sigh!
ciao
Alessandro


confermo....windows....con CTRL+C chiude...mentre con CTRL+Z niente !!
Alessandro
P.S. compilato con Dev-c++

 che posso fare ?....pensavo anche io fosse la soluzione..sigh!
Strano ! Se lo hai compilato sotto windows e lo stai facendo girare in


 Alessandro
Il tuo programma rettificato come segue funziona.
HTH
#include <iostream>
#include <string>
using namespace std; // evita di scrivere  std::string, std::cin etc.
 
int main ()
{
//     stringa parola;	// dichiarazione errata
string parola;
cout << "Inserisci una o più parole seguite da Invio\n\n";
cout << "A fine inserimento premi Ctrl-Z (Ctrl-D in Unix/Linux)\n\n";
while (cin >> parola)
     cout << parola letta: " << parola << '\n';
cout << "\nNon ci sono più parole da leggere.\n";
 return 0;
}

 }
Non mi funziona se premo CTRL+Z.....gli errori di sintassi sono perchè l'ho
trascritto in velocità !
Alessandro



Allora devi usare CTRL-D come su Unix
Ciao
Marco Barisione (ICQ 84277092)

 Marco Barisione (ICQ 84277092)
non và.....ma penso di aver capito cosa sia...un attimo che provo poi posto
!!

questo è il codice che ho usato ora:
#include <iostream>
#include<string>
using namespace std;
int main()
{ string parola;
 while (cin >> parola)
 cout << "parola letta: " << parola << '\n';
 cout <<"non ci sono più parole da leggere.\n";
  return 0;
}
ora funziona......nella fretta mi ero dimenticato di aggiungere al codice
using namespace std;
...ora scrivo le parole......premo invio.......lui le stampa.......io premo
CTRL+Z.......lui stampa quella p****na di frase e esce......io andrò a
dormire soddisfatto :-))
penso che sia corretto il comportamento no?....
Ciao
Alessandro

 dormire soddisfatto :-))
Sono contento, anche se non ho capito che cosa fosse l'errore !?!
Mi avevi fatto venire un lapsus su CTRL+Z ;-)
ALex

che posso fare ?....pensavo anche io fosse la soluzione..sigh!
Devi dare CTRL+Z all'inizio della nuova riga.


Da quello che ho potuto capire quando facevo girare il programmino SBAGLIAVO
nel pensare che automaticamente dopo la lista di parole lui aggiungesse il
carattere speciale di EOF...poi avevo provato a digitare le parole e quindi
CTRL+Z, ma lui aggiungeva solo ^Z......la soluzione era quella di digitare
le parole....aspettare che lui le scrivesse....quindi premere CTRL+Z; in
quel caso ha funzionato .
Ciao
Alessandro


Compilato con il Borland 5.5 funziona.
Prova a sostituire Ctrl-Z con:
Premi tasto Alt
tenendo premuto Alt, digita 26 sul tastierino numerico
rilascia il tasto Alt
HTH

 ha scritto nel
messaggio news:3B1F2D90...@interfree.it...


 funzionare anche F&
ops, volevo scrivere F6

 funzionare anche F&
ops, volevo scrivere F6