Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    9

    [C++] comportamento insolito di getline

    Salve a tutti.
    Ho questo problema con questo tipo di codice:
    codice:
        string file1, file2,mystr;
        int riga
        cout << "Inserisci un numero= ";
        cin >> mystr;
        stringstream(mystr) >> riga;
        cout << "Inserisci il nome del File1= ";
        getline (cin,file1);
        cout << "Inserisci il nome del File2= ";
        getline (cin,file2);
    Il programma una volta lanciato (sotto windows) arriva alla riga del getline (cin,file1) ma non mi lascia inserire il nome del file1 passando direttamente al comando successivo (e cioè il cout del file2). Ho provato a risolvere inserendo:
    codice:
         getline (cin,file1);
         string rimanente;
         getline (cin,rimanente);
    per fargli leggere il resto della riga (da quel che ho capito il comando si ferma perchè trova un \n e quindi per lui la riga è finita), ma il problema persiste.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,463
    Prima della prima getline inserisci

    cin.ignore();
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    9
    Ora il programma funizona ma quando inserisco il nome del file2 mi toglie la prima lettera:
    se ad esempio scrivo "file.dat" lui me lo vede come "ile.dat". sulla parte del file1 invece funziona bene....

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,463
    Devi inserire la cin.ignore() solamente prima della prima getline.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    9
    Ti ringrazio. Ho avuto tempo solo ora di provarlo. Tutto a meraviglia.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.