如何从文本文件中的每一行中获取一个int?

时间:2011-10-13 08:45:31

标签: c++ file-io int

我有一份年份清单:

1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000

我试图找出如何从每一行中获取年份..

我一直在网上阅读,到目前为止我读的是getline,但我想这不起作用,因为它只适用于字符串。

我还能用什么?

PS。这是我的代码

int main(int argc, char *argv[]) {

    string line;
    ifstream myfile ("leapin.txt");
    if (myfile.is_open()){
        while ( myfile.good() ){
            getline (myfile, line);
        }
        myfile.close();
    }

    else cout << "Unable to open file";

      system("PAUSE");

    return 0;
}

3 个答案:

答案 0 :(得分:6)

您可以使用标准流-IO:

#include <fstream>

int main() {
    std::ifstream input("filename.txt");
    int buffer;
    while(input >> buffer) {
        // do stuff with the number
    }
}

答案 1 :(得分:1)

如果您完全确定该文件有行,请阅读它们,然后使用strstream来解析它们。

答案 2 :(得分:-1)

一旦你得到字符串,使用[strtok] http://www.cplusplus.com/reference/clibrary/cstring/strtok/或任何相关的api后跟isdigit()来检查它是否不是字母数字,后跟atoi()
选择了你可以使用的api。