1.4

C语言中,在成功打开一个文件后,可以使用
文件指针
来获取文件缓冲区的FILE结构信息。

SEEK_END直接指向EOF,也就是最后一个字符的下一个位置

typedef struct point(YTYPE)[10];

不能写成(struct point)诶,加了括号会错,后面再细究吧……

注意a+写入一定会末尾!

fputs函数不会自动添加换行符。

编译时 vs 运行时:
"Hello" "!"是在编译时拼接的,编译器将它们合并成一个字符串
s "!"中的 s是运行时变量,编译器不知道它的值
语法规则:
C语言允许相邻的字符串字面量自动拼接
但不允许变量和字面量用这种语法拼接

文件指针移动理解为字符数组的下标就行了。

假设文件能正确打开和关闭,变量都已正确定义,运行以下文件读写代码,第一个printf输出
Ynwi
,第二个printf输出
s so sad...

fp = fopen("data.txt", "w");
fputs("You know - one loves the sunset, when one is so sad...", fp);
fclose(fp);

fp = fopen("data.txt", "r");
ch1 = fgetc(fp);
fseek(fp, 12L, SEEK_SET);
ch2 = fgetc(fp);
fseek(fp, -6L, SEEK_CUR);
ch3 = fgetc(fp);
fseek(fp, -12L, SEEK_END);
ch4 = fgetc(fp);
printf("%c%c%c%c", ch1, ch2, ch3, ch4);
fgets(str, 128, fp);
printf("%s", str);
fclose(fp);

超级好题!

注意读取完getc,指针会往后一格!,所以先+12,读取,再-6,相当于12+1-6=7,也就是第八个字符!不是ynoi!

posted @ 2026-01-04 16:14  Zlc晨鑫  阅读(4)  评论(0)    收藏  举报