读取数据直至' \ n'

时间:2014-06-01 15:39:39

标签: c++ ifstream

我的程序有一个输入文件,用于存储用于两个参数的值。

# X parameter values to use
10 20 30 40
# Y parameter values to use
5

值的数量不是固定的,而是客户端选择要使用的值(在此示例中,4表示X,1表示Y(也可以是0))。如果我做了

ifstream in("input.in");
int value;
in >> value >> value >> ...

程序不会在行尾停止,当X行结束时,显然也会读取Y行的X值。如何在行尾停止阅读?我想读取值,直到找到' \ n'。谢谢!

1 个答案:

答案 0 :(得分:4)

std::string line;
std::getline(in, line);

现在您将该行作为字符串( #include <string> )并需要解析它。您可以使用std::istringstream #include <sstream> )以与以前相同的方式执行此操作。

std::istringstream iss(line);
while (iss >> value) // read until failure
{
    // process value
}