比如有一个文件内容是,“XXXXXXXXXYYYYYYYYYY” ,想要程序运行完成后变成“XXXXXXXXXZZZZYYYYYYYYYY”,而不是写入4个Z后覆盖掉四个Y,请问应该以什么方式打开文件,用什么函数来写?
1、可以使用fseek()来指定文件位置。
函数原型:int fseek(FILE *stream, long offset, int fromwhere);
函数说明:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere(偏移起始位置:文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))为基准,偏移offset(指针偏移量)个字节的位置。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值:如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
2、例程:向test.txt的末尾添加“this is a text"的字符串。
用w+方式打开吗?我用w+打开文件,如果内容是”123456",在3后面fprintf输入字符‘7’,文件会变成“123756”,我想要变成"1237456",请问怎么做