0
私は、次のデータセットがあります。なぜこのコードはデータセットの他のすべての座標のみを返しますか?
0 1
0 3
1 1
2 3
<empty line>
私の目標は、2つの整数のx、およびyにこれらの点を読むことです。わかりやすく、私はファイルの最後の空白行を読みたくないので、それを避けるために次のコードを書いた。
#include <stdio.h>
#include <math.h>
int main() {
FILE *input;
int x, y;
const float r = 2;
input = fopen("coords.dat", "r");
for (;;) {
int nread = fscanf(input, "%i %i\n", &x, &y);
if (!(nread >= 1)) break;
fscanf(input, "%i %i\n", &x, &y);
printf("%i %i\n", x, y);
}
fclose(input);
}
本質的に、行が空白の場合、私はループから抜け出す。 .datファイルの最後に空白行があることを知っています。しかし、私は次の出力を得ます:
0 3
2 3
明らかに、このコードは1行おきにスキップしています。なぜこうなった?
フォーマットの末尾にある '\ n 'は悪い考えです。 ['scanf()' - フォーマット文字列内の末尾の空白を参照](https://stackoverflow.com/questions/15740024/) –