getline 不接受任何输入
getline does not take any input
当用户输入名字和姓氏时,我需要使用 getline 来存储整行。当我 运行 程序时,它传递了一行 getline(cin,st[i].name);我的意思是输入函数不起作用,它会跳过 "score" 的下一个 cin。
struct Student {
string name;
int score;
char grade;
};
void main() {
int SIZE;
cout << " How many students are you going to add ? ";
cin >> SIZE;
Student* st = new Student[SIZE]; // user determines size of array.
int i;
for (i = 0; i < SIZE; i++)
{
if (st[i].name.empty()) // if array list of name is empty, take input.
{
cout << "name and surname : ";
//cin >> st[i].name;
getline(cin, st[i].name);
}
cout << "Score : ";
cin >> st[i].score; // take quiz score from user.
-- 我没有放完整的main函数。
所以当 l 运行 程序时,返回屏幕显示
有没有其他方法可以输入姓名?
在 cin >> SIZE;
之后,尾随的换行符仍然保留在标准输入中。
您需要 cin.ignore()
跳过剩余的换行符,以便后面的 getline()
可以获取值。
当用户输入名字和姓氏时,我需要使用 getline 来存储整行。当我 运行 程序时,它传递了一行 getline(cin,st[i].name);我的意思是输入函数不起作用,它会跳过 "score" 的下一个 cin。
struct Student {
string name;
int score;
char grade;
};
void main() {
int SIZE;
cout << " How many students are you going to add ? ";
cin >> SIZE;
Student* st = new Student[SIZE]; // user determines size of array.
int i;
for (i = 0; i < SIZE; i++)
{
if (st[i].name.empty()) // if array list of name is empty, take input.
{
cout << "name and surname : ";
//cin >> st[i].name;
getline(cin, st[i].name);
}
cout << "Score : ";
cin >> st[i].score; // take quiz score from user.
-- 我没有放完整的main函数。
所以当 l 运行 程序时,返回屏幕显示
有没有其他方法可以输入姓名?
在 cin >> SIZE;
之后,尾随的换行符仍然保留在标准输入中。
您需要 cin.ignore()
跳过剩余的换行符,以便后面的 getline()
可以获取值。