逐个读取文件中的单词

时间:2016-03-02 15:59:52

标签: c++ file eof

我有一个文本文件,如下所示:

szavak.txt

我想逐一将这些单词读成数组。我试过以下,但它无论如何都有用。

string fajlnev = "szavak.txt";
ifstream fajl(fajlnev.c_str());

int i=0;
int db=0;
string line;

while (!fajl.eof())
{
    getline(fajl, line);
    db++;
}

string words[db];
for(i=0; i<db; i++)
{
    fajl>>words[i];
}

for(i=0; i<db; i++)
{
    cout<<words[i];
}

你能告诉我我哪里做得不好吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以将istream_iteratorvector constructor taking an iterator pair一起使用。下面是一个程序将自己的源代码放在这样的向量中(然后将其打印出来)的示例:

#include <vector>                                                                                                                               
#include <string>
#include <fstream>
#include <iostream>
#include <iterator>


using namespace std;


int main()
{
    ifstream in{"stuff.cpp"};
    vector<string> words{
        istream_iterator<string>{in},
        istream_iterator<string>{}};
    for(const auto &s: words)
        cout << s << endl;
}

(如果您使用此功能,请确保使用c ++ 11设置进行构建。)