我的作业有问题。我必须打开一个看起来或多或少的文本文件:
-------------------------------------------------------------
|ammount | time |delay |
-------------------------------------------------------------
|100 | 342 | 4324 |
还有几行。我所要做的就是将数字放入一个数组中,对于上面的例子,它看起来像这样:ar[0]=100, ar[1]=342, ar[2]=4324
。我想我需要逐行读取文件到getline的字符串,但接下来呢?如果我使用stringstream
,我会获得|100
而不是100
。我现在真的没有想法了。
答案 0 :(得分:0)
要阅读您所描述的一行输入(此处file
可能是ifstream
或istringstream
):
for (int i = 0; i < 3; ++i)
{
file.ignore(numeric_limits<streamsize>::max(), '|'); // Ignores all characters until it finds a '|' character
file >> ar[i]; // Reads the number following the '|' to ar[i]
}
file.ignore(numeric_limits<streamsize>::max(), '\n'); // Finally, ignores all characters until newline
如果需要,您甚至可以制作一个小的快捷方式宏:
#define ignore_until(c) ignore(numeric_limits<streamsize>::max(), c)
并像这样使用它:
file.ignore_until('|');