如何读取被查找的文件?
How to read a file that was fseeked?
我不知道为什么这不起作用:
#include <stdio.h>
int main(){
FILE* fp = fopen("txt2","wr");
if(!fp) return 1;
fprintf(fp,"20");
fseek(fp,0,SEEK_SET);
fprintf(fp,"19");
rewind(fp);
char c;
while((c=fgetc(fp))!=EOF)
printf("%c",c);
}
这里应该写20
,然后改写成19
,将位置设置为文件的开头,然后读取字符直到EOF(所以应该打印19
)。但什么也不打印。这是为什么?
我试图更好地检查 return 指针到 fp
(因为 wr
):
编辑:
#include <stdio.h>
int main(){
FILE *fp = fopen("txt","wr");
if(!fp){
printf("nada\n");
return 1;
}
}
但是编译没有问题。这是为什么? wr
应该是 UB(从而导致段错误或其他错误)或?
我不知道为什么这不起作用:
#include <stdio.h>
int main(){
FILE* fp = fopen("txt2","wr");
if(!fp) return 1;
fprintf(fp,"20");
fseek(fp,0,SEEK_SET);
fprintf(fp,"19");
rewind(fp);
char c;
while((c=fgetc(fp))!=EOF)
printf("%c",c);
}
这里应该写20
,然后改写成19
,将位置设置为文件的开头,然后读取字符直到EOF(所以应该打印19
)。但什么也不打印。这是为什么?
我试图更好地检查 return 指针到 fp
(因为 wr
):
编辑:
#include <stdio.h>
int main(){
FILE *fp = fopen("txt","wr");
if(!fp){
printf("nada\n");
return 1;
}
}
但是编译没有问题。这是为什么? wr
应该是 UB(从而导致段错误或其他错误)或?