我正在开发一个将重定向文件作为输入的程序。例如,如果我的程序名为 foo,我将使用 ./foo < input.txt
来调用该程序。 .我在我的程序中运行的文件应该在第一行用一个整数格式化,在第二行用两个整数格式化。所以像
3
1 8
我发现有些文件的第一行有无关字符,我需要忽略这些字符。有点像
3 t
1 8
我只是通过执行 cin >> var >> var 2 >> var3;
来读取数据但是当那个额外的 t 被扔进混音时,它把一切都搞砸了。解决此问题的最佳方法是什么?在我 cin 第一个变量之后有什么方法告诉它跳过该行的其余部分吗?或者我会使用 getline
函数然后以某种方式解析它?谢谢。
最佳答案
如果文件是这样的
[number] garbage
[number] [number] garbage
并且您知道数字始终位于行中的正确位置,然后我将使用 std::getline()
读取每一行,然后尝试读取预期数量的整数来自你阅读的每一行。
关于C++从重定向到我的程序的文件中读取特定数据段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3805362/