Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - input
Forum - C/C++ - input "saltato"

Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 9:00
Venerdì, 18/04/2014
Ciao a tutti, ho (se si puo' definir così) un semplice problema, ovvero mi salta l'input di un dato. Vi posto il codice che sarà tutto più chiaro.
Codice sorgente - presumibilmente C/C++

  1. string str1, str2;
  2.                 char str3[100];
  3.  
  4.                 cout << "\nInserisci la stringa 1:  ";
  5.                 cin >> str1;
  6.                 cout << "\nInserisci la stringa 2:  ";
  7.                 cin >> str2;
  8.                 cout << "\nInserisci la stringa 3:\n";
  9.                 cin.getline(str3, 100);//in runtime mi salta questo input... why???



Parte della disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.  [cit. Isaac Asimov]
PM Quote
Avatar
DeSa97 (Normal User)
Newbie


Messaggi: 5
Iscritto: 27/03/2014

Segnala al moderatore
Postato alle 13:18
Venerdì, 18/04/2014
invece di cin.getline mettici
fflush(stdin);
gets(str3);

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:46
Venerdì, 18/04/2014
La fflush non è standard per lo stdin, da sconsigliare.

Utilizza la

cin.ignore();

dopo le cin

La gets è soggetta a buffer overflow, da sconsigliare.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
bububs (Normal User)
Expert


Messaggi: 253
Iscritto: 11/03/2010

Segnala al moderatore
Postato alle 18:52
Venerdì, 18/04/2014
Risolto (tramite i vostri suggerimenti). Grazie mille ad entrambi! :k:


Parte della disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.  [cit. Isaac Asimov]
PM Quote