C++将文本文件读入数组

pjm*_*mil 2 c++ arrays file-io

我正在尝试将包含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();
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码时,循环被执行但没有任何内容被读入数组.我哪里出错了?

小智 6

您的for循环终止条件错误:

i < monsters->size()
Run Code Online (Sandbox Code Playgroud)

这实际上会调用数组中第一个字符串的size(),因为它位于第一个索引处.(怪物等同于怪物[0])因为默认情况下它是空的,它返回0,循环永远不会运行.

请记住,C++没有数组的size()运算符.您应该使用常数20作为终止条件.

i < 20
Run Code Online (Sandbox Code Playgroud)