gpt4 book ai didi

c++ - 使用cstring数组c++循环获取用户输入

转载 作者:行者123 更新时间:2023-11-30 02:20:23 29 4
gpt4 key购买 nike

我的作业要求我编写一个程序,提示用户输入学生姓名和成绩,并一直循环直到他们输入“quit”。

但我无法弄清楚如何让用户输入数组以获取整行(这是名字和姓氏所以我不能只做 cin >> name1[i] 因为那里有空格) 但是当我使用 cin.getline 或只是 getline 并编译它时,我收到一条错误消息,指出没有匹配 getline 的成员函数。

此外,当我在没有 getline 的情况下编译它时,它只是一个连续的循环,并且不允许我输入任何名称或等级信息。我是数组和 cstring 的新手,所以请尽量简化我搞砸的地方。谢谢。

#include <iostream>
#include <string>
#include <cstring>
#include <cctype>

using namespace std;

int main() {

const int CAPACITY = 50;
string name1[CAPACITY];
string grade[CAPACITY];
char quit[]= "quit";
int i;

//for loop to get names and grades from user until quit is entered
for (i = 0; i < CAPACITY; i++) {
while (name1[i] != quit)
cout << "Please input a name (or 'quit' to quit): ";
getline(cin, name1[i]);

//break if name1[i] = quit
if (name1[i].compare(quit) == 0) {
break;
}

//continue loop if quit not entered and get the grade from that person
cout << "Please input this person's grade: ";
cin >> grade[i];
}

return 0;

}

最佳答案

name1变量声明为std::string,然后使用std::cin:

std::string name1;
std::cin >> name1;

但如果你真的需要整条线,你总是可以这样做:

std::string line;
std::getline(std::cin, line);

然后使用该行。

如果您的作业确实需要您使用 cstrings,您可以:

char line[50];
std::cin.get(line, 50);

关于c++ - 使用cstring数组c++循环获取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49783663/

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