我正在尝试将包含 20 个名称的文本文件读取到一个字符串数组中,然后将每个字符串打印到屏幕上。
string monsters[20];
ifstream inData;
inData.open("names.txt");
for (int i=0;i<monsters->size();i++){
inData >> monsters[i];
cout << monsters[i] << endl;
}inData.close();
然而,当我运行这段代码时,循环被执行但没有任何内容被读入数组。我哪里出错了?
最佳答案
你的 for 循环终止条件是错误的:
i < monsters->size()
这实际上会在数组中的第一个字符串上调用 size(),因为它位于第一个索引处。 (monsters 等同于 monsters[0])因为它默认为空,所以它返回 0,并且循环永远不会运行。
请记住,C++ 没有用于数组的 size() 运算符。您应该改为使用常量 20 作为终止条件。
i < 20
关于C++ 将文本文件读入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396906/