0

我正在从一个看起来类似于以下内容的 .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一旦我发现它是被读取的下一个数据类型,我需要能够使用该值。

提前致谢。

4

1 回答 1

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
        }
    }
}
于 2012-04-15T18:42:13.143 回答