彩笔凡 发表于 2024-6-9 21:39:02

求助

这个删除部分有没有错啊?为什么删除不了?

FishC 发表于 2024-6-9 21:39:10

你好!很高兴能够帮助你解决问题。请告诉我你要删除的部分是什么,以及你尝试了什么代码来删除它。这样我才能更好地帮助你找到问题所在。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

lwy1027 发表于 2024-6-10 07:57:58

猜测:
感觉是在salary1.bat文件里定义了,以id为唯一值的相关信息,长度是LEN
代码是想通过输入id来匹配,通过循环来匹配
id不同则写入到临时文件linshi.bat,
id相同则跳过
最后通过删除源文件,重命名新文件来达到以id为对应的相关信息删除掉

我也蹲一个,看看代码是哪里问题

jackz007 发表于 2024-6-10 22:03:00

本帖最后由 jackz007 于 2024-6-10 22:11 编辑

#include <stdio.h>
#include <string.h>

void deleteFile()
{
      Salary s                                                                   ;
      char a                                                               ;
      FILE * fp1 , * fp2                                                         ;
      bool f                                                                     ;
      Menu1()                                                                  ;
      if((fp1 = fopen("salary1.dat" , "rb"))) {
                if((fp2 = fopen("linshi.dat" , "wb"))) {
                        printf("请输入职工 ID : ")                                 ;
                        scanf("%s" , a)                                          ;
                        for(f = false ; fread(& s , LEN , 1 , fp1) ;) {
                              if(strcmp(s . id , a)) fwrite(& s , LEN , 1 , fp2) ;
                              else f = true                                    ;
                        }
                        fclose(fp1)                                                ;
                        fclose(fp2)                                                ;
                        if(f) {
                              remove("salary1.dat")                              ;
                              rename("linshi.dat" , "salary1.dat")               ;
                              printf("记录成功删除。\n")                         ;
                        } else {
                              remove("linshi.dat")                               ;
                              printf("记录无法找到。\n")                         ;
                        }
                } else {
                        fprintf(stderr , "无法创建文件\\"linshi.dat\\"\n")         ;
                }
      } else {
                fprintf(stderr , "无法打开文件\\"salary1.dat\\"\n")                  ;
      }
}
      老司机了,难道不知道求助一定要贴出源代码文本?

人造人 发表于 2024-6-11 12:58:13

都已经提了63个问题了,还是没有学会如何提问题
页: [1]
查看完整版本: 求助