Yannnnnn12 2023-12-19 19:56 采纳率: 0%
浏览 7

纯文本文件内容的修改

printf("              *************************************\n");
    printf("              *    1——更新数据 2——删除数据        *\n");
    printf("              *           请输入您的选择:        *\n");
    printf("              *************************************\n");
    scanf("%d",&m); 
    if(m==1)
    {    printf("*************************************\n");
        printf("*     请输入您要更新数据的订单号:  *\n");
        printf("*************************************\n");
        scanf("%d",&n); 
        struct operate *p,*full=head;
        p=(struct operate*)malloc(sizeof(struct operate));
        printf("************************************************************\n");
        printf("*      请分别输入商品的订单号  名称  价格  地址  日期:    *\n");
        printf("************************************************************\n");
        scanf("%d %s %lf %s %s",&p->detail.number,p->detail.name,&p->detail.amount,p->detail.address,p->detail.date);
        while(fread(full,sizeof(struct operate),1,fp)){
                if(p->detail.number==n)
                {
                    strcpy(full->detail.address,p->detail.address);
                    full->detail.amount=p->detail.amount;
                    full->detail.number=p->detail.number;
                    strcpy(full->detail.date,p->detail.date);
                    strcpy(full->detail.name,p->detail.name);
                    break;
                }
                full=full->next;}
                fseek(fp, -sizeof(struct operate), SEEK_CUR);
                fwrite(full, sizeof(struct operate), 1, fp);
                fclose(fp);
                fp=fopen("C:\\Users\\ASUS\\Desktop\\order.txt","wb+");
                struct operate *w;
                w=head;
                while(w!=NULL){
                    fwrite(w, sizeof(struct operate), 1, fp);
                    w=w->next;
            }    fclose(fp);    
            }这是截取的部分代码,需要实现对纯文本文件内容的修改,但是运行起来后失败,请问是哪里有问题
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-25 21:23
    关注

    【相关推荐】



    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/862932
    • 这篇博客也不错, 你可以看下可执行文件的生成
    • 您还可以看一下 刘城龙老师的教你快速查找电脑中的文件课程中的 快速按文件内容查找文件的方法小节, 巩固相关知识点
    • 除此之外, 这篇博客: 利用哈夫曼编码压缩文本中的 读取文件内容至内存中 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
      char *read_file(const char *filename)     ///从文件中读取字符串
      {
          FILE *fp = NULL;
          char buf[256];
          int len = 0;
          char *x = new char [10000];
          *x = '\0';
      
          if((fp = fopen(filename, "r"))==NULL)
          {
              perror("can't open the file");
              exit(1);
          }
          while(fgets(buf, 255, fp) != NULL)
          {
              len = strlen(buf);
              //printf("%d", len);
              if(buf[len-1] == '\n')
              {
                  buf[len-1] = '\0';
              }
              //printf("%s\n", buf);
              strcat(x, buf);
          }
          //printf("%s\n", x);
          fclose(fp);
          return x;
      }
      
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月19日

悬赏问题

  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败