我有一个文件weights01.txt,它填充了4x3矩阵中的浮点数,如下所示
1.1 2.123 3.4
4.5 5 6.5
7 8.1 9
1 2 3.1
Run Code Online (Sandbox Code Playgroud)
我正在尝试读取此文件并将数据传输到名为newarray的数组.这是我正在使用的代码:
int main()
{
ofstream myfile;
float newarray[4][3];
myfile.open ("weights01.txt");
for(int i = 0 ; i < 4; i++) // row loop
{
for(int j = 0 ; j < 3; j++) // column loop
{
myfile >> newarray[i][j]; // store data in matrix
}
}
myfile.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的线路出错了
myfile >> newarray[i][j];
Run Code Online (Sandbox Code Playgroud)
错误:'myfile >>中没有匹配'operator >>'newarray [i] [j]'
我不明白为什么会出现这个错误
我搜索了之前关于这个"不匹配'运算符>>'错误的问题,包括这个和这个.我也读过这个关于重载运算符的长篇讨论,但我没有找到解释(可能是因为我之前没有使用过很多文件而且没有我真的关注正在发生的事情.
您无法读取从std::ofstream(以下简称出文件流),它是唯一的输出.请改用std::ifstream(即在文件流中).
如果您对标准库工具的作用有任何疑问,请查看您最喜欢的参考文献,例如cppr.
OT备注:您可以直接从文件名构造流:
std::ifstream myfile ("weights01.txt");
Run Code Online (Sandbox Code Playgroud)
close()当你完成后你不需要文件,流的析构函数将为你处理.