gpt4 book ai didi

c++ - 使用 fstream 将文件中的一行读入不同的变量

转载 作者:搜寻专家 更新时间:2023-10-31 01:35:34 25 4
gpt4 key购买 nike

我想知道是否有任何方法可以在尝试为 name 赋值时不忽略空格。

我想在 while 循环中保留这个条件结构*,但获取 ClientFile >> 就像 getline 而不是 cin。

*我知道我可以使用 substring 和 find,但不是这个主意。

文本文件中的行示例:

1 ; Iron Man ; 10.70

问题:程序没有进入循环,因为名称仅被指定为 Iron。

using namespace std;

int main()
{
ifstream ClientsFile("clients.txt");
int id;
string name;
double money;
char sep1;
char sep2;

while (ClientsFile >> id >> sep1 >> name >> sep2 >> money)
{
cout << "id: " << id << endl << "name: " << name << endl << "money: " << money << endl << endl;
}

return 0;
}

谢谢。

最佳答案

输入运算符 >>> 在空白处分隔。相反,您可能想使用 std::getline阅读以分号分隔的字段。

有点像

std::string id_string, money_string;
while (std::getline(ClientsFile, id_string, ';') &&
std::getline(ClientsFile, name, ';') &&
std::getline(ClientsFile, money_string))
{
id = std::stoi(id_string);
money = std::stod(money_string);
...
}

关于c++ - 使用 fstream 将文件中的一行读入不同的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37106065/

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