我想学习一些 C++,但遇到了一些麻烦。
我有以下代码:
char board[5][5];
ifstream myReadFile;
myReadFile.open("c:/test.txt");
for(int i=0; i<5; i++)
{
for(int j=0; j<5; j++)
{
while (myReadFile.good())
{
board[i][j] = myReadFile.get();
cout << board[i][j];
}
}
}
myReadFile.close();
for(int x=0; x<5; x++)
{
for(int y=0; y<5; y++)
{
cout << board[x][y];
}
cout << endl;
}
现在我期待第一个循环从 txt 文件中读取字符,这有效,是的! 但是在第二个循环中,我期望将相同的字符打印回 cout。然而事实并非如此,所以我添加了这一行
cout << board[i][j]
到第一个循环,看看它们是否正确加载。 这是我得到的结果
(来源:tbmilena.dk)
谁能解释为什么第二个循环的打印结果与第一个不同。
最佳答案
从文件中读取一个字符后,您将立即替换 board[i][j]。将 while 循环作为最外层循环。
while (myReadFile.good())
{
board[i][j] = myReadFile.get();
cout << board[i][j];
}
在这里,它不断用新字符替换 board[i][j],而 i 和 j 保持不变。
关于c++ - C++ 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9874827/