我有一个文本文件,如下所示:
我想逐一将这些单词读成数组。我试过以下,但它无论如何都有用。
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];
}
你能告诉我我哪里做得不好吗?
提前致谢。
答案 0 :(得分:0)
您可以将istream_iterator
与vector
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设置进行构建。)