以w+打开文件后,进行写操作,首先会把整个文件的数据清空,然后再写入数据。而r+打开文件后,进行写操作则是直接写入数据,比如你要写入10个字节的数据,他就会把这是个字节的内容覆盖成你这次写入的数据,十个字节之后的数据就保持不变。
w+
这是最初的文本数据:
int main()
{
FILE* fd = fopen("text.txt", "w+");
if (fd == NULL)
{
printf("open failed!");
fclose(fd);
return 0;
}
char buff[20] = "i like eat apple";
fputs(buff, fd);
fclose(fd);
return 1;
}
这是运行代码后的结果:
r+
最初文本数据:
int main()
{
FILE* fd = fopen("text.txt", "r+");
if (fd == NULL)
{
printf("open failed!");
fclose(fd);
return 0;
}
char buff[20] = "i like eat apple";
fputs(buff, fd);
fclose(fd);
return 1;
}
这是运行代码后的结果:
总结
从上面的两个例子能看出,用w参数是先清空文本在写入数据,r参数则是直接写入数据不管其他的。