seglex 发表于 2019-9-26 18:41:09

C语言FILE 打开方式求解

FILE * fp =fopen("xxxx","w");

如果用w方式打开的话,写入了一些内容,
然后把光标移动到文件中间的某处的话,
再给文件写内容,内容会覆盖后面的内容?还是原有的内容存在然后后移?
如果用a的方式打开,同样操作又是如何呢?
如果我想覆盖应该用什么方式打开,不想覆盖去插入又是什么样的方式打开呢?

superbe 发表于 2019-9-26 20:27:45

w打开移到中间再写会覆盖后面的内容。a打开移到中间再写仍然会在文件末尾添加,不会从中间覆盖或插入。
想在中间插入而不影响后面的内容,只能先将后面的内容暂时读出,待从中间覆盖完成后,再将暂存内容写到后面。

seglex 发表于 2019-9-26 21:15:24

superbe 发表于 2019-9-26 20:27
w打开移到中间再写会覆盖后面的内容。a打开移到中间再写仍然会在文件末尾添加,不会从中间覆盖或插入。
想 ...

还有个问题是a和a+的不同之处在哪儿?
如果一样为什么会有a+

superbe 发表于 2019-9-26 21:40:02

a只能写,a+可读可写

seglex 发表于 2019-9-26 21:47:45

superbe 发表于 2019-9-26 21:40
a只能写,a+可读可写

意思用a+打开可以用fread函数,而a打开只能用fwrite函数是这个意思吗?

superbe 发表于 2019-9-26 21:59:54

a可以用fwrite,putc,fputc,fputs,fprintf这些写的函数,a+除此之外还可以用fread,getc,fgetc,fgets,fscanf这些读的函数。
页: [1]
查看完整版本: C语言FILE 打开方式求解