用c ++读取文件

时间:2012-03-26 15:17:50

标签: c++

我试图学习一些关于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

有人可以解释为什么第二个循环的打印方式与第一个循环不同。

1 个答案:

答案 0 :(得分:4)

您正在从文件中读取字符后立即替换board [i] [j]。将while循环作为最外层循环。

 while (myReadFile.good())     
        {
            board[i][j] = myReadFile.get();                 
            cout << board[i][j];
        }

这里,它继续用新角色取代棋盘[i] [j]而i&amp; j保持不变。