从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 http://tbmilena.dk/test.png
有人可以解释为什么第二次循环不打印一样的第一。
从文件中读取字符后立即替换板[i] [j]。把while循环作为最外层循环。
while (myReadFile.good())
{
board[i][j] = myReadFile.get();
cout << board[i][j];
}
在此,虽然我&Ĵ保持相同连续更换板[i] [j]与新的字符。
另一个问题是'myReadFile.good()'测试* previous * read是否有效,而不是* next *'get()'是否可以工作。 – 2012-03-26 15:48:40
good()如果没有设置(errorbit,failbit和eofbit),则返回true。所以它可以用来像“读到eof”一样。你的陈述“如果以前的阅读工作”只考虑失败位数。但好()比这更好。 – 2012-03-26 15:56:21
不,它不会告诉下一个'get()'是否会到达eof。一次读取一个字符时,您不知道是否存在下一个字符。 – 2012-03-26 15:59:22
你能发布text.txt文件内容吗? – logoff 2012-03-26 15:24:52