ファイルの走査中にファイル ポインタがどのように移動するかを見つけようとしています。その目的のために、私はこのコードを書きました -
#include<stdio.h>
#include<conio.h>
void main()
{
FILE *fp;
fp=fopen("example.txt","w+");
fputs("This is a test",fp);
printf("The initial text - \n");
int x=0; // For the purpose of debugging
rewind(fp);
while(!feof(fp))
{
char ch=getc(fp);
printf("File pointer - %d and letter - ",ftell(fp));
if(ch=='\t')
puts("tab");
else
if(ch=='newline')
puts("\n");
else
putchar(ch);
printf("\n");
}
fputs("\nThis is the second line",fp);
printf("\n\nThe final text - \n");
rewind(fp);
while(!feof(fp))
{
char ch=getc(fp);
printf("File pointer - %d and letter - ",ftell(fp));
if(ch=='\t')
puts("tab");
else
if(ch=='\n')
puts("newline");
else
putchar(ch);
printf("\n");
}
}
さて、この O/P は 3 か所を除いて理解できます -
最初の行を入力すると、14 番目の位置のポインター値が 2 回表示されるのはなぜですか? ファイルは EOF - 14 の最初の発生で終了するはずではあり
ません。これはなぜですか?2 行目が入力された後、ポインターの 15 番目の位置が失われるのはなぜですか?
16 番目の文字の後に空白行があるのはなぜですか? 17 番目の文字は、空行なしで次の行自体に発生するはずではありませんか?