gpt4 book ai didi

c++ - 如何使用 cin 测试空行

转载 作者:行者123 更新时间:2023-11-28 08:08:01 31 4
gpt4 key购买 nike

下面是我用来将学生数据输入学生结构数组的函数的代码。我希望循环在我达到限制 (n) 时终止,这很好,或者,当为学生姓名键入空白行时,这就是我遇到的问题?有人有什么建议吗?我正在使用的当前方法不起作用('cin.getline(pa[i].fullname, SLEN - 1); 下面的 if 语句);')

int getinfo(student pa[], int n)
{
cout << "\nPlease enter student details:\n\n";

int i;
for (i = 0; i < n; i++)
{
cout << "Student " << (i + 1) << ": \n";
cout << " > Full name: ";
cin.getline(pa[i].fullname, SLEN - 1);
if (pa[i].fullname == NULL)
continue;
cout << " > Hobby: ";
cin.getline(pa[i].hobby, SLEN - 1);
cout << " > OOP Level: ";
cin >> pa[i].ooplevel;;
cin.get();

cout << endl;
}

cout << "--------------------------------------" << endl;

return i;
}

最佳答案

更好地使用 string 和原子循环:

std::string name, hobby, oop;

std::cout << "Name: ";
if (!(std::getline(std::cin, name)) { break; }

std::cout << "Hobby: ";
if (!(std::getline(std::cin, hobby)) { break; }

std::cout << "OOP: ";
if (!(std::getline(std::cin, oop)) { break; }

// if we got here, everything succeeded.
pa[i].name = name; pa[i].hobby = hobby; pa[i].oop = oop;

// or better, pass a `std::vector<student> &`:
pa.push_back(student(name, hobby, oop));

关于c++ - 如何使用 cin 测试空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9851635/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com