我试图学习一些关于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]
到第一个循环,看看它们是否正确加载。 这是我得到的结果
results http://tbmilena.dk/test.png
有人可以解释为什么第二个循环的打印方式与第一个循环不同。
答案 0 :(得分:4)
您正在从文件中读取字符后立即替换board [i] [j]。将while循环作为最外层循环。
while (myReadFile.good())
{
board[i][j] = myReadFile.get();
cout << board[i][j];
}
这里,它继续用新角色取代棋盘[i] [j]而i&amp; j保持不变。