gpt4 book ai didi

c++ ifstream,检测字母还是EOLine?

转载 作者:行者123 更新时间:2023-11-27 23:35:34 25 4
gpt4 key购买 nike

我有这个函数可以从文件中读取所有整数。问题是当我阅读字母时我会触发一个新行并且我总是以 1 为单位查找而不是到行尾。我怎样才能更好地编写这个函数?

int v;
while (!in.eof())
{
while (in >> v)
cout << v << " ";

cout << endl;
if (in.eof())
break;
in.clear();
in.seekg(1, ios::cur);
int a;
a=0;
}

最佳答案

如果您的文件仅包含由空格(包括)换行符分隔的整数,那么这应该足够了。

while( in >> v )
{
// do something with v
}

在文件之后,如果 in.fail() 为假且 in.eof() 为真,则您已到达文件末尾且没有格式错误。否则会发生读取 int 错误。

如果您收到无效输入并想从中恢复,那么您需要弄清楚您希望如何恢复。如果你想跳到行尾并重新开始解析,你可以使用这样的东西。

in.clear();
in.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );

关于c++ ifstream,检测字母还是EOLine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/477427/

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