gpt4 book ai didi

c++ - 如何从 C++ 文件中读取由逗号分隔的全名?

转载 作者:行者123 更新时间:2023-11-30 02:13:51 27 4
gpt4 key购买 nike

我正在尝试从我要求用户输入的文件中读取以逗号分隔的全名。在我将提交的示例中,它是关于美国前十位总统的。这是我的代码(我有所有必要的库,我只是展示了主要功能,这样我就可以知道我错在哪里):

 int main()
{
const int NUMBER_OF_PRESIDENTS = 50;
int n = 0;
string president[NUMBER_OF_PRESIDENTS];

string fileName;
ifstream inputFile;

cout << "Enter name of input file ";
getline(cin, fileName);

inputFile.open(fileName.c_str());

if (inputFile.fail()) {
cout << "This file does not exist.";
}

if (inputFile >> president[n]) {
n++;
}

cout << n << " lines of text read from the input file.\n"
<< "Here are the unsorted names:\n"
<< "--------------------------- \n";

for (int i = 0; i < n; i++) {
cout << "[" << (i+1) << "] " << president[i] << endl;
}

return 0;
}

用户输入一个名为“firstTen.txt”的txt文件,显示如下txt:

Washington, George
Adams, John
Jefferson, Thomas
Madison, James
Monroe, James
Adams, John Quincy
Jackson, Andrew
Van Buren, Martin
Harrison, William Henry
Tyler, John

我的问题是我希望它读取每一行然后转到下一任总统的名字。但是当它显示时,它只显示如下: enter image description here

最佳答案

inputFile >> president[n] 只读取第一个空白字符。然而,std::getline 读取整行,包括任何空格。

您还需要遍历输入文件中的行,所以这样做:

while (getline(inputFile, president[n])) {
n++;
}

关于c++ - 如何从 C++ 文件中读取由逗号分隔的全名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58812588/

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