Ho il seguente codice:Problema con cin quando gli spazi sono immessi, utilizzando classe string
main.cpp
#include <iostream>
#include <string>
using namespace std;
string name;
string age;
int main() {
cout <<"Name: ";
cin >> name;
cout << endl;
cout <<"Age: ";
cin >> age;
cout << endl;
cout << "Your name is " << name << ", and you are " << age << " years old." << endl;
cout << "Press enter to close this application" << endl;
getchar();
return 0;
}
ho notato che se metto uno spazio nel mio input per nome che ha vinto Mi dà la possibilità di inserire il nome, e vedrà la voce dopo lo spazio come età. Mi scuso se questo è un errore da principiante, che probabilmente è. In precedenza ho programmato Java e ho deciso che volevo passare a C++ perché si adattava meglio alle mie esigenze. Probabilmente ho anche formato il mio codice in modo strano ai tuoi standard, correggilo se lo desideri.
Ho anche notato un altro errore, qualcosa che non ho mai avuto problemi con in Java. Non riesco a capire come impedirgli di chiudersi all'istante quando termina l'elaborazione. Ho sentito che puoi usare "system. (" Pause "), ma mi è stato anche detto di non usarlo. Sono davvero confuso su cosa usare.Ho sentito usare getchar() ;, ma non sembra di fare nulla.
Qualsiasi aiuto sarebbe molto apprezzato, come io sono un principiante assoluto quando si tratta di C++.
@chris Vorrei scegliere il tuo commento come risposta, ma non penso davvero che mi lascerebbe. Grazie per l'aiuto. Ti dispiacerebbe ripubblicare quello o qualcosa come una risposta in modo da poterlo selezionare? –
Ho deciso prima del tuo commento di dare una risposta più dettagliata. È lì (e si spera non abbia errori impercettibili) se vuoi leggerlo. – chris
Oh, e il motivo per cui il 'getchar' non funziona è la stessa ragione per cui il mio primo esempio per la sostituzione di' system ("pause") 'non funziona. È spiegato nella risposta. – chris