c - 从文件中删除一条记录

标签 c file delete-record

在下面的代码中,我想通过 fwrite(&emptyEntry...) 行删除记录。下面的代码有效,但是当我尝试通过为所有结构成员分配 0 或 null 来使条目过时时:

client.accountNo=0;
client.firstName="";
client.lastName="";
client.balance=0;

编译器通过说“表达式必须是左值”给我错误。 acccountNo 和 balance 不会给出任何错误,但 firstName 和 lastName 变量赋值由编译器加下划线。你知道为什么会这样吗?我可以使用上面的代码不能用于删除单独分配结构成员的记录吗?

fread(&client, sizeof(struct carData), 1, filePointer);

if (client.accountNo == 0)
{
    printf("This record does not exist!!!!\n\n");

}

else
{

    fseek(filePointer, (del - 1)*sizeof(struct clientData), SEEK_SET);
    fwrite(&emptyEntry, sizeof(struct clientData), 1, filePointer);
    printf("Entry deleted.");
}

最佳答案

替换

client.firstName="";

通过

client.firstName[0] = 0 ;

大致相同

strcpy(client.firstName[0], "") ;

请记住,与其他语言不同,C 中没有 string 类型。

关于c - 从文件中删除一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22533226/

相关文章:

C - printf 输出根据后续代码而变化

无需更改防火墙的 WCF SSL 安全传输或大负载

sql-delete - 如何从 DFS 表中删除所有记录但保留其架构?

c - 在无符号整数之间进行减法是否安全?

C简单字符串程序无法编译

Java - 你可以从 1 个 java 类写入 2 个文件吗?

elasticsearch - 在ElasticSearch中删除文档后如何释放未使用的空间?

c - 如何在C中根据数据类型显示表达式的结果

c - 为什么 __func__ 在 C 的某些函数中返回 <unknown>?