【发布时间】:2019-04-28 16:12:12
【问题描述】:
我正在尝试将文件中的每个单词添加到向量中,但是如果我将向量的大小设置为 (500) 并且文件中只有 20 个单词。向量的大小仍然被认为是 500。我该如何解决这个问题?
我这样做是不是不好?这可以更简单吗?
void loadFile(string fileName)
{
vector<string> fileContents(500);
int p = 0;
ifstream file;
file.open(fileName);
if (!file.is_open()) return;
string word;
while (file >> word)
{
fileContents[p] = word;
p++;
}
for (int i = 0; i < fileContents.size(); i++)
{
cout << fileContents[i] << endl;
}
}
【问题讨论】:
-
您应该使用
fileContents.push_back(word);而不是fileContents[p] = word;也将vector<string> fileContents(500);更改为vector<string> fileContents;并摆脱p -
@drescherjm 我试过了,但是当它打印出文件内容时,它什么也没打印出来?编辑:NVM。我输入了错误的命令..有效..我以为我试过了,但我想我一开始就输入错了
-
@jake 你摆脱了
(500)吗? -
现在可以使用了。我想我上次尝试时可能已经离开了,也许这就是它不起作用的原因。 @0x499602D2