gpt4 book ai didi

c++ - 如何在 C++ 中读入带空格的字符串

转载 作者:行者123 更新时间:2023-11-28 04:10:17 26 4
gpt4 key购买 nike

<分区>

所以我正在为我的 CS175 C++ 类(class)做作业。我们有一项家庭作业,我们必须制作一顶短帽,有点像哈利波特里的帽子。我已经掌握了 99% 的代码,但是让我感到困惑的是如何读取带有空格的字符串。

我们需要能够输入全名,所以显然仅使用 std::cin >> 是行不通的。问题是,到目前为止,我似乎无法使用我尝试过的任何方法。

这是我的代码:

#include <iostream>
#include <string>

int main()
{
int NumStudents;
std::string NameStudents;
int StartValue;
int House;
std::string HouseName;
int NumCornfolk = 0;
int NumEsophagus = 0;
int NumBob = 0;


//How many students are there?
std::cout << "How many students are there? \n";
std::cin >> NumStudents;


for (StartValue = 0; StartValue < NumStudents; StartValue++) {
std::cout << "Please enter the name of the next student. \n";
std::cin >> NameStudents; \\**THE PROBLEM IS HERE**
//Assings the House
House = rand() % 100 + 1;
if (House <= 19) {
HouseName = "Cornfolk! \n";
NumCornfolk++;
}
else if (House > 19 && House < 50) {
HouseName = "Esophagus! \n";
NumEsophagus++;
}
else if (House >= 50) {
HouseName = "Bob! \n";
NumBob++;
}

std::cout << NameStudents << " got " << HouseName << std::endl;


}
//Prints Results
std::cout << "Number of Students in each House: \n";
std::cout << "Cornfolk:" << NumCornfolk << " Esophagus:" << NumEsophagus << " Bob:" << NumBob;
}

读取std::cin的代码行>> NameStudents;是什么导致了这个问题。我见过一些方法说要使用类似于“std::cin.getline (name,256);”的方法。但是 cin.getline 在此期间抛出错误并且不会编译。

能够正确读入名称只有 2/11 分,所以这没什么大不了的,但我想知道为什么建议的方法在这里不起作用。

谢谢。这个问题与之前问的mods不同。

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