fopen()とfgetc()を使用してファイル(map.txt)を読み取ろうとしていますが、出力として無限ループと奇妙な文字が表示されます。私はさまざまな条件、さまざまな可能性を試しましたが、EOFが存在しないかのように、ループは常に無限です。
テキストファイル(Allegro)を使用してマップタイルの基本システムを作成したいので、その読み方を学ぶ必要があります。そのため、ファイルを読み取ってその内容を1文字ずつ印刷しようとしています。
void TileSystem() {
theBitmap = al_load_bitmap("image.png"); // Ignore it.
float tileX = 0.0; // Ignore it.
float tileY = 0.0; // Ignore it.
float tileXFactor = 0.0; // Ignore it.
float tileYFactor = 0.0; // Ignore it.
al_draw_bitmap( theBitmap, 0, 0, 0 ); // Ignore it.
FILE *map;
map = fopen( "map.txt", "r");
int loopCondition = 1;
int chars;
while ( loopCondition == 1 && ( chars = fgetc( map ) != EOF ) ) {
putchar( chars );
}
}
map.txtの内容は次のとおりです。
1
2
3
4
5
6
7
8
9
そして、私が出力から得るものは、次の無限ループです。
???????????????????????????????????????????????????
???????????????????????????????????????????????????
???????????????????????????????????????????????????...
しかし、私がターミナルで見るものは次のとおりです。
さて、私はすべての文字を読み取る必要があり、コンパイラはファイルの終わりを正しく認識する必要があります。