gpt4 book ai didi

c++ - 从文件中读取。 C++

转载 作者:行者123 更新时间:2023-11-28 07:39:49 24 4
gpt4 key购买 nike

因此,当我的程序启动时,它会尝试从文件中读取产品列表。但如果文件不存在,它会显示错误并继续。我遇到的问题是当它显示错误时,它不会继续执行 do while 循环

ifstream input;
input.open("data.txt");


if (input.fail())
{
cout << "\n Data file not found \n";
}
ListItemType data;

input >> data.productname;
while(( !input.eof()))
{
input >> data.category;
input >> data.productprice;
addproduct(head, data);
input >> data.productname;
}

input.close();

最佳答案

这不是完全相同的功能,但通常更好的做法是:

if (std::ifstream input("data.txt"))
{
ListItemType data;
while (input >> data.productname >> data.category >> data.productprice >> data.productname)
addproduct(head, data);
if (!input.eof())
std::cerr << "Error parsing input file.\n";
}
else
cout << "\n Data file not found \n";

如果你按照上面的方式构建你的 if/else 子句,无论发生什么,它都会按照你的意愿继续下面的代码。

请注意,上面的代码会在每次输入操作后检查问题。即使读取 data.category 失败,您的代码也会尝试读取 data.productprice。两次读取 productname 有点奇怪,我假设您可以在 I/O 之后调用 addproduct - 否则您将需要一个 while 循环,例如:

    while (input >> data.productname >> data.category >> data.productprice)
{
addproduct(head, data);
if (!(input >> data.productname))
break;
}

关于c++ - 从文件中读取。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16073546/

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