从文件中检查传入的数据类型

时间:2012-04-15 18:37:42

标签: c++ int fstream

我正在读取一个类似于以下内容的.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值。

提前致谢。

1 个答案:

答案 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
        }
    }
}