Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con cin.getline
Forum - C/C++ - Problema con cin.getline

Avatar
alex2thebest (Normal User)
Rookie


Messaggi: 23
Iscritto: 17/05/2008

Segnala al moderatore
Postato alle 20:22
Martedì, 08/07/2008
eccomi di nuovo :):rotfl:

ho un problema con cin.getline su questo programma... sapreste dirmi cos'è che non va bene perchè nella compilazione non riporta nessun errore ma nell'esecuzione salta il cin.getline...
ecco il programma:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. void salvare()
  7. {
  8.      char a[1000];
  9.      system("CLS");
  10.      cout << "scrivi il testo da salvare..." << endl;
  11.      cin.getline(a, 1000);
  12.      fstream salvataggio;
  13.      salvataggio.open("C:\\sprova", ios::out);
  14.      salvataggio << a;
  15.      salvataggio.close();
  16.      system("CLS");
  17.      cout << "testo salvato correttamente" << endl;
  18.      _sleep(2000);
  19.      exit(0);
  20. }
  21. void leggere()
  22. {
  23.      char b[1000];
  24.      cout << "il testo salvato e':" << endl;
  25.      cout << endl;
  26.      fstream lettura;
  27.      lettura.open("C:\\sprova", ios::in);
  28.      lettura.getline(b, 1000);
  29.      lettura.close();
  30.      cout << b << endl;
  31.      system("pause>nul");
  32.      exit(0);
  33. }
  34. int main()
  35. {
  36.     int scelta;
  37.     cout << "vuoi salvare o leggere?" << endl;
  38.     cout << endl;
  39.     cout << "1) salvare" << endl;
  40.     cout << "2) leggere" << endl;
  41.     cin >> scelta;
  42.     switch(scelta)
  43.     {
  44.                   case(1):
  45.                           salvare();
  46.                           break;
  47.                   case(2):
  48.                           leggere();
  49.                           break;
  50.     }
  51. return 0;
  52. }


PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 20:57
Martedì, 08/07/2008
Subito prima della cin.getline devi inserire

cin.ignore();

per svuotare il buffer di input dal return pressato in precedenza ...

P.S. Le exit nelle funzioni non hanno senso ... eliminale ...

Ultima modifica effettuata da gantonio il 08/07/2008 alle 20:58
PM Quote