0
私はC言語のゲームプログラムを作成していますが、問題は関数のテキストドキュメントから読み込むときです。前の行は繰り返されません。使用する前にfgets()空白行からの読み込み中に前の文字列を繰り返す
FILE *f;
int i, j, k;
char s[100];
f = fopen (input, "r");
for (j=0; j<height; j++) {
if(fgets (s, 100, f) != NULL && (s[0] != '\r' && s[0] != '\n'))
{
for (i=0; i<width; i++) {
board[i][j] = s[i] == 'x';
}
}
}
fclose (f);
:
例えば、出力はここ
x
x
x
x x
コードは、出発世代として、私を与えている
x
x
x
x
の入力を与えられましたifステートメントは、出力は
x
x
x
x
x x
x x
x x
x x
x x
を 'ため(i = 0; iは幅<; I ++)は'そのループが間違っています。改行( ''\ n'')またはNUL('' \ 0'')文字がある場合は、停止する必要があります。 – kaylum
これはif文の目的です。問題は、3行目のs [4]が5行目(空白行があるため)に保持されていることです。理由はわかりません。 – Milos
@Milosだから、 's [i]'が '\ n'''か' '\ r''か' '\ 0''かどうかをチェックする必要があります。その場合は、ループから抜け出す。 –