Sto lavorando a un incarico scolastico e sto sbattendo la testa contro un muro proprio ora cercando di capire perché il mio programma non si comporta come mi piacerebbe!Problemi di C++ che coinvolgono getline() e un ciclo
int main(){
string input;
char choice;
bool getChoice(char);
string getInput();
CharConverter newInput;
do{
cout << "Please enter a sentence.\n";
getline(cin, input);
cout << newInput.properWords(input) << endl;
cout << newInput.uppercase(input) << endl;
cout << "Would you like to do that again?\n";
cin >> choice;
} while (getChoice(choice) == true);
return 0;
}
Questo programma funziona bene al primo turno, ma sto avendo un problema quando getChoice() == true, e il fai mentre blocco è in loop una seconda volta. Nel secondo ciclo, il programma mi chiede di inserire nuovamente una frase, ma poi salta semplicemente a "Ti piacerebbe farlo di nuovo?" senza consentire l'input dell'utente o l'output dei risultati delle funzioni properWords() e uppercase(). Ho il sospetto che ci sia qualcosa sulla linea del traguardo che non capisco, ma devo ancora trovarlo attraverso il mio googling. Qualche aiuto là fuori?
modifica: c'è stato un errore nella mia spiegazione originale.
Cosa ingresso stai usando? Se c'è più di una linea nel flusso di input, getline() prenderà la riga successiva senza attendere ulteriori input. – Otaia
Fondamentalmente, quello che sto cercando di fare è consentire all'utente di inserire una frase completa che viene passata alle funzioni dei due membri. Voglio che l'utente sia in grado di digitare una nuova frase nella successiva iterazione ... e così via. – user3468711
Mi piace questa domanda perché l'input stringa contro char è una delle cose che fa inciampare molte persone quando iniziano a scrivere in C/C++ (o in molti altri linguaggi). –