0

我正在开发一个将重定向文件作为输入的程序。例如,如果我的程序被称为 foo 我会用./foo < input.txt. 我通过我的程序运行的文件应该在第一行用一个整数格式化,在第二行用两个整数格式化。所以像

3
1 8

我发现有些文件在我需要忽略的第一行有多余的字符。就像是

3 t
1 8

我只是通过做来读取数据,cin >> var >> var 2 >> var3;但是当额外的 t 被混入其中时,一切都搞砸了。解决此问题的最佳方法是什么?在我输入第一个变量之后有什么方法可以告诉它跳过该行的其余部分吗?还是我会使用该getline函数然后以某种方式解析它?谢谢。

4

2 回答 2

1

如果文件的格式为

[number] garbage
[number] [number] garbage

并且您知道数字始终位于该行的正确位置,然后我会使用std::getline()读取每一行然后尝试从您读取的每一行中读取预期的整数数。

于 2010-09-27T15:36:55.530 回答
1

是的,显而易见的方法是使用std::getline读取一行文本,使用std::string从中获得的初始化 an std::istringstream,从该行读取正确数量的项目,并根据需要重复。

于 2010-09-27T15:37:25.203 回答