【发布时间】:2010-01-21 05:24:33
【问题描述】:
无论我尝试什么,我都无法让以下代码正常工作。
ifstream inFile;
inFile.open("sampleplanet");
cout << (inFile.good()); //prints a 1
int levelLW = 0;
int numLevels = 0;
inFile >> levelLW >> numLevels;
cout << (inFile.good()); //prints a 0
在第一个 cout
文件内容:
8
2
#level 2
XXXXXXXX
X......X
X..X..XX
X.X....X
X..XX..X
XXXX...X
X...T..X
XXX..XXX
#level 1
XXXXXXXX
X......X
X..X.XXX
X.X..X.X
X..XX..X
X......X
X^....SX
XXX.^XXX
【问题讨论】:
-
文件的内容是什么,这个块末尾的levelLW和numLevels的值是多少?我的猜测是 inFile >> levelLW >> numLevels;正在贪婪地消耗比您预期的更多的字节。
-
在 inFile 之后它们的值仍然为 0 >>
-
我的猜测是输入文件有一些不可见的字符。在 unix 上,我将运行
hexdump -b <file>来查看文件的内容。