c++ - C++ 读取文件

标签 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
(来源: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/

相关文章:

c++ - 奇怪的错误 c2660 "function does not take 1 arguments"

c++ - 构造函数中的 weak_from_this()

c++ - 无法加载符号,即使它存在于 .so 文件中?

c# - 无法将 C# 代码移植到实现 IDataErrorInfo 的托管 C++

c++ - 如何在 Windows 中从 C++ 程序打开 url?

c++ - 从其基类列表中调用重写的函数?

c++ - 在 NMLVCUSTOMDRAW C++ 中获取列 ID

c++ - 模板结构成员的模板参数数量错误(1 应该是 3)

c++ - 状态机 - 保存状态、事件和 pFunc 的结构

c++ - 如何在 C++ 中为 sqlite 进行非静态回调?