c语言先将文件中的内容读到结构体,改变其中的一个值,然后再写入文件为什么写入的数据会变多

   更新日期:2024.05.17
你可以在第二次写入前,调用fseek,把文件流指针移动到要覆盖内容的起始位置。比如fseek(fp, 0, SEEK_SET);就是移动到文件开头,从头开始覆盖。
但注意的是,如果你改写的内容比原内容少,那么就不能完全覆盖了。可以考虑直接新建文件放改写内容,更简单。

你没有将文件写位置回到首位置,只是往文件尾部加内容。

  • 15646372582 :c语言 如何把如图txt中的内容读入到结构体中?
    焦闻吕1411 :答:读取文件,回车断为行 再按空格,断为字段,分别存入结构体成员中 这里没处理文件内容有错误的情况
  • 15646372582 :c语言将文本文件读取到结构体中
    焦闻吕1411 :答:在文件中分隔用什么随便你,但是当你用什么分隔后,在用fscanf函数的时候也要在格式控制中加入,如我用第一个程序保存了些数据在f:\\score.txt中:Name:ytyh Score:1 Name:tytuy Score:41 Name:hjhj Score:41 由于我在第一个程序中用的是fprintf(fp,"Name:%s\t\tScore:%d\n",s,ra...
  • 15646372582 :如何将txt文件中的学生信息读取到结构体数组中,C语言
    焦闻吕1411 :答:FILE *fp;printf("请输入文件名,路径:"); //打开txt文件scanf("%s",filename);if((fp = fopen(filename,"r")) == NULL) {fprintf(stderr,"%s 文件打开失败!\n",filename);exit(0); } for(int i=0; i<12; i++) //循环读取{ fscanf(fp,"%s%s%f",StuInfo[i].I...
  • 15646372582 :C语言如何将txt文件中的数据存入结构体中
    焦闻吕1411 :答:因为结构体它里面有多种数据, 所以如果一个一个保存肯定是麻烦的. 所以, 如果保存的文件不是给用户看的, 而是只为程序所用, 那么直接用二进制方式打开文件, 然后用fwrite把结构的二进制数据写入内存 include <stdio.h>struct dat{ int i;char ch;double d;};int main(){ FILE *p = fo...
  • 15646372582 :怎样把TXT格式文件中以记录存在的数据读到C语言结构体数组中
    焦闻吕1411 :答:include <stdio.h> include <stdlib.h> struct content { char id[100];char bookname[100];char editorname[100];char publishname[100];struct content *next;};int main(){ FILE *fp;///读文件用的文件指针 char root[1000];///记录文件所在的目录 scanf("%s",root);///输入文件所在...
  • 15646372582 :c语言,从文本文件中读取数据到结构体数组,读不到最后一行是什么问题_百 ...
    焦闻吕1411 :答:不是读不到,而是读完最后一行后,即跳出了循环,没有打印,所以,只需要在while(){}后面添加一行,如:...while(fgetc(fp)!=EOF) { printf("%d %d %s\n",eve[i].p,eve[i].d,eve[i].name); i++; fscanf(fp,"%d%d%s",&eve[i].p,&eve[i].d,&eve[i].name); }print...
  • 15646372582 :用C语言将文本文件中的数据(一个个结构体类型的数据)读到链表中去,代码...
    焦闻吕1411 :答:这是我最开始学习链表的时候写的一个很小的程序,好像不是很完善,但是大致应该没有问题,你可以参照的看看。太晚了,实在是不想写了。include <stdio.h>#include <io.h>#include <conio.h>#include <stdlib.h>#include <string.h>#define MAX 200struct student{char no[10]; // 学号char...
  • 15646372582 :C语言怎样将.txt文件中的数据写入到结构体中去
    焦闻吕1411 :答:txt文件中的数据写入到结构体中去的源代码如下:include<stdio.h> include <string.h> //可以退出的头文件 include <stdlib.h> //结构体的长度 define DATALEN 15 //函数声明 //定义结构数组 struct wordUnit{ int id; //id char word[10]; //词语 char depId[10]; //依存词语的id char...
  • 15646372582 :C语言中,用fscanf如何从文件中读取结构体数据
    焦闻吕1411 :答:fp, "%s", &stu[i].name);2 小王 ..如此往复读取。--- 如果是二进制文件,可以用fread读定长数据,直接存到结构体中 int fread( void *buffer, size_t size, size_t num, FILE *stream );//buffer结构体指针,//size结构体长度 //num一般指定为1 //stream文件流 ...
  • 15646372582 :c语言编写一个程序 要从一个txt文档里读入数据到一个链表里
    焦闻吕1411 :答:你这不是链表,fread也用得不对。晕啦! 就当锻炼了。帮你重写了。我用的是fgets读文件,所以源文件要用回车隔开。!!!记住这点别忘了!!我这linux没conio.h 用getchar换掉getch了 版本一:命令行传递参数 如下:include <stdio.h> include <stdlib.h> include <string.h> define N 100...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网