Reading file, storing in array, error: no match for 'operator>>'
Reading file, storing in array, error: no match for 'operator>>'
我有一个文件 weights01.txt,其中填充了 4x3 矩阵中的浮点数,如下所示
1.1 2.123 3.4
4.5 5 6.5
7 8.1 9
1 2 3.1
我正在尝试读取此文件并将数据传输到名为 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;
}
我收到行错误
myfile >> newarray[i][j];
错误:'operator>>' 在 'myfile >> newarray[i][j]'
中不匹配
我不明白为什么会出现这个错误
我搜索了以前关于这个“不匹配 'operator>>' 错误的问题,包括 this and . I also read this 关于重载运算符的长期讨论,但我没有找到解释(可能是因为我以前没有使用过文件)并且不要真正关注正在发生的事情。
您不能读取 std::ofstream
(out 文件流的缩写),它仅用于输出。
请改用 std::ifstream
(即 in 文件流)。
如果您对哪个标准库工具的作用有疑问,请查看您最喜欢的参考资料,例如 cppr。
OT备注:可以直接从文件名构造流:
std::ifstream myfile ("weights01.txt");
完成后您不需要 close()
文件,流的析构函数将为您处理。
我有一个文件 weights01.txt,其中填充了 4x3 矩阵中的浮点数,如下所示
1.1 2.123 3.4
4.5 5 6.5
7 8.1 9
1 2 3.1
我正在尝试读取此文件并将数据传输到名为 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;
}
我收到行错误
myfile >> newarray[i][j];
错误:'operator>>' 在 'myfile >> newarray[i][j]'
中不匹配我不明白为什么会出现这个错误
我搜索了以前关于这个“不匹配 'operator>>' 错误的问题,包括 this and
您不能读取 std::ofstream
(out 文件流的缩写),它仅用于输出。
请改用 std::ifstream
(即 in 文件流)。
如果您对哪个标准库工具的作用有疑问,请查看您最喜欢的参考资料,例如 cppr。
OT备注:可以直接从文件名构造流:
std::ifstream myfile ("weights01.txt");
完成后您不需要 close()
文件,流的析构函数将为您处理。