用C ++读取文件中的数字和字符串

时间:2016-09-14 23:31:34

标签: c++ file input fileinputstream stringstream

我知道这个问题已经被问了很多,而且我已经经历了最多popular answer的stackoverflow。

我有以下格式的一堆数字:

4 // number of testcases
1 2 3 4 5 6 // Each line contains numbers for that particular testcase
1 4 5 6 7 8 9 19
12 3 5 
1 4 9

第一行是测试用例的数量。其后的每一行都包含该特定测试用例的数字。

我想逐行阅读,处理数字,输出解决方案,然后转到读取第二行。

在另一个stackoverflow问题中,建议的解决方案导致向量all_integers中的大量数据重复。

std::string line;
std::vector< std::vector<int> > all_integers;
while ( getline( std::cin, line ) ) {
    std::istringstream is( line );
    all_integers.push_back(
         std::vector<int>( std::istream_iterator<int>(is),
                           std::istream_iterator<int>() ) );

    for(auto it = all_integers.begin();it!=all_integers.end();it++) {
        for(auto j = it->begin();j!=it->end();j++) {
            cout << *j << " " ;
        }
        cout << endl;
    }

从文件中读取此内容的正确方法是什么?

跟进问题:

在另一个文件中,我输入的格式如下:

5 2
abc
bcd 
eee
zyc
abv

abc bcd
zyc anv

第一行包含两个数字:m,n。

m:字典中的单词数 n:查询次数。

接着是m个单词,最后n行读取要对其进行的查询的数量。

如何有效地阅读此内容?有没有办法在C ++中有效地读取文件的最后K行?

0 个答案:

没有答案