c++怎么覆盖文本文件的数据
答案:2 悬赏:30 手机版
解决时间 2021-02-04 16:52
- 提问者网友:凉末
- 2021-02-04 10:51
c++怎么覆盖文本文件的数据
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-02-04 12:15
fopen("test.txt","w") 没有这种打开方式 当用fseek()时,假设此时指针位置已有数据,写入后是覆盖 但是会导致前面的部分被清0 一般只能全部读出,然后再写入,除非这个文件的数据存储格式你自己定义
全部回答
- 1楼网友:旧脸谱
- 2021-02-04 13:36
简单办法是把整个文件作为字符全部读入,找123,换成456,再全部写出。
下面是一个字一个字慢慢读,判断,替换。
#include
main()
{
file *fin;
int i;
int c[3];
fin=fopen("text.txt","rb+");
c[0] = fgetc(fin);
c[1] = fgetc(fin);
while (1){
c[2] = fgetc(fin);
if (feof(fin)) break;
if ( c[0]=='1' && c[1]=='2' && c[2]=='3' ) {
fseek(fin,-3,seek_cur);
fputc('4',fin);fputc('5',fin);fputc('6',fin); fflush(fin); // 替代
c[0] = fgetc(fin); if (feof(fin)) break;
c[1] = fgetc(fin); if (feof(fin)) break;
};
c[0]=c[1];c[1]=c[2];
}
fclose(fin);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯