Проблема с cin при вводе пробелов с использованием строкового класса
У меня есть следующий код:
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;
}
Я заметил, что если в поле ввода ввести имя для пробела, он не даст мне возможности ввести имя, и он будет рассматривать запись после пробела как возраст. Я прошу прощения, если это ошибка новичка, что, вероятно, так и есть. Ранее я программировал Java и решил, что хочу перейти на C ++, потому что он лучше соответствует моим потребностям. Я также, вероятно, форматирую свой код странным образом по вашим стандартам, пожалуйста, исправьте его, если хотите.
Я также заметил другую ошибку, с которой у меня никогда не было проблем в Java. Я не могу понять, как предотвратить его немедленное закрытие после завершения обработки. Я слышал, что вы можете использовать "систему" ("пауза"); но мне также сказали не использовать его. Я действительно запутался в том, что использовать. Я слышал, что я использую getchar (); но, похоже, он ничего не делает.
Любая помощь будет принята с благодарностью, так как я начинающий, когда дело доходит до C ++.