我希望代码能够在输入名称时接受全名。如何让cin接受空格?
当我输入带空格的名称时,结果是它假定主题名称的下一个输入是姓氏。我该如何解决这个问题?
#include<iostream>
using namespace std;
int main()
{
float mark1, mark2, mark3, mark4;
char subject1[25], subject2[25], subject3[25], subject4[25];
char name;
float average;
cout << "Please enter your name"<< endl;
cin >> name;
cout << "Please enter the first subject name"<< endl;
cin >> subject1;
cout << "Please enter the mark for " <<subject1<< endl;
cin >>mark1;
cout << "Please enter the second subject name"<< endl;
cin >> subject2;
cout << "Please enter the mark for " <<subject2<< endl;
cin >>mark2;
cout << "Please enter the third subject name"<< endl;
cin >> subject3;
cout << "Please enter the mark for " <<subject3<< endl;
cin >>mark3;
cout << "Please enter the fourth subject name"<< endl;
cin >> subject4;
cout << "Please enter the mark for " <<subject4<< endl;
cin >>mark4;
average=(mark1+mark2+mark3+mark4) / 4;
cout << name << "'s " << subject1<< " mark is " <<mark1 <<", " << subject2<< " mark is " << mark2 <<", " <<subject3 <<" mark is " <<mark3 <<", " <<subject4<< " mark is " <<mark4 <<". His/her average is " <<average<< endl;
cout << endl;
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
尝试使用getline(cin, <variable name>)
例如:
string name;
getline(cin, name);
cout << name;
请务必阅读有关使用getline的信息: getline reference