この小さなプログラムを使用して、ftell の仕組みを理解します。txtファイルを作成し、「15」と入力し、その下の2行目に「いいえ」と入力しました。だから私が期待したのは、0を出力し、15を読み取った後、2を出力し、2行目に「いいえ」があるため、最初の行にいくつかの「利用可能なスポット」を残し、より多くの文字で埋めることができたということでした私はそれが7よりも明らかに大きい数を印刷すると予想します(実際に印刷されたものです)。なぜ?
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
int x;
char box[10];
fp = fopen("test.txt", "r");
printf("%ld", ftell(fp));
fscanf(fp,"%d",&x );
printf("\n%ld", ftell(fp));
fscanf(fp, "%s", box);
printf("\n%ld\n", ftell(fp));
}
出力: 0 2 7