gpt4 book ai didi

c - C编程中如何指定txt文件中删除记录的位置

转载 作者:行者123 更新时间:2023-11-30 18:32:08 26 4
gpt4 key购买 nike

void deleteRecord()
{
FILE *fp, *fdel;
struct person obj;
char number[20];

printf("\n============================");
printf("\n DELETE");
printf("\n============================\n\n");
fflush(stdin);
printf("Enter student number to delete :");
scanf("%s", number);
fp=fopen("D:\\data.txt","r");
fdel=fopen("D:\\del.txt","w");
while(fscanf(fp,"\n%s\n%s %s\n%s\n%s\n%s\n%s\n%s\n%s\n",
obj.stdNumb, obj.firstName, obj.lastName, obj.icPass,
obj.nationality, obj.gender, obj.dateOfBirth,
obj.contact, obj.address)==1)
if(stricmp(number, obj.stdNumb)!=0)
fprintf(fdel, "\n%s\n%s %s\n%s\n%s\n%s\n%s\n%s\n%s\n",
obj.stdNumb, obj.firstName, obj.lastName, obj.icPass,
obj.nationality, obj.gender, obj.dateOfBirth, obj.contact,
obj.address);
fclose(fp);
fclose(fdel);
remove("D:\\data.txt");
rename("D:\\del.txt","D:\\data.txt");
printf("Successully Deleted.");
getch();
}

这是我的完整代码,一段时间后我删除了 ;,并删除了 fgetc,如果我运行并删除记录,它将删除所有记录..仍然没有指定..如何解决这个问题?

最佳答案

乍一看,“while”以“;”结尾,这导致它除了“while”本身之外什么都不执行。

在评估“while”命令之后,您在预期循环中执行的所有操作都会始终执行!

顺便说一句,关闭循环内的文件似乎会导致第二次执行循环时出现问题。

关于c - C编程中如何指定txt文件中删除记录的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16461962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com