好的,我是这方面的新手,这就是我一直坐在这里一会儿挠头做的事。
我的目标是从命令行参数读取文件,并将文件内容存储在数组字符串中,每个元素都是文件中的一行。我需要包括空格在内的整条线。我需要循环遍历整个文本文件,而不知道它有多大/多小。
我很确定key.eof()在这里是不对的,但我现在尝试了很多东西,我需要寻求帮助,因为我觉得我越来越远离解决方案。
ifstream key(argv[2]);
if (!key) // if file doesn't exist, EXIT
{
cout << "Could not open the key file!\n";
return EXIT_FAILURE;
}
else
{
vector<string> lines;
for (unsigned i = 0; i != key.eof(); ++i)
{
getline(key, lines[i]);
}
for (auto x : lines)
cout << x;
如果有人能指出我正确的方向,这只是我必须做的事情的乞讨,如果感到无能为力。我的目标是能够将每一行分解为包含空格的字符向量(或我需要的任何内容)。
答案 0 :(得分:1)
我想你想要这样的东西:
vector<string> lines;
string line;
while(getline(key, line)) // keep going until eof or error
lines.push_back(line); // add line to lines
答案 1 :(得分:0)
要从文件中连续读取行并将其保存在数组中,我会使用while循环而不是for循环来执行此类操作。
int counter = 0;
while (getline(key, lines[counter]) {
counter++;
}