我正在读取一个类似于以下内容的.txt文件:
int string string string
int string string
int string string string string string
每个string
后的int
类型的数量未知。每一行代表一组新的值,每个组都需要进入他们自己的数组值或其他任何内容(不知道我是否正确地说明了这一点,但我希望你能理解我的意思)。
我是否可以执行检查,以查看文件中的传入数据是否为int
,以便如果这是真的并且可以告诉我的程序它是一组新的数据?
我试过
int check
if(check = file1.peek()){//start new group assignment}
但这似乎不起作用。一旦我发现它是下一个要读入的数据类型,我需要能够使用int
值。
提前致谢。
答案 0 :(得分:1)
有几种方法可以做到这一点,但我建议你的组可能在不同的行上,一行内的空格界定一组中的项目是否正确?
所以我会一次一行地读取文件,然后在空格上分割每一行。
如果以上情况适合,请告诉我,然后我们可以解释如何做到这一点。
好的,你可以使用 getline :
while (cin.good()) // reading from standard input until EOF
{
String line_str;
getline(cin, line_str); // get next line from standard input
istringstream line(line_str); // put line into string stream
if (line.good()) // read from string stream until EOF
{
int x;
line >> x; // read an integer from string stream
while (line.good()) // read from string stream until EOF
{
string s;
line >> s; // read strings from string stream
/// process s
}
}
}