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!

浙公网安备 33010602011771号