我必须用C语言编写一个简单的数据库(控制台应用程序):你可以输入性别、姓名和地址,数据将保存在一个名为“Person”的结构数组中。然后,您还可以显示所有条目或再次删除条目。到目前一切尚好。
现在,我必须添加一些函数来将数据保存到.csv文件中,然后再次从该文件中读取数据。但是,函数fopen()总是返回一个NULL-pointer,所以我甚至无法进入读取或写入部分。下面是我的代码。我希望你能告诉我为什么这第一步都不起作用。我对自己的C语言能力很快就失去了信心。
void save(Person persons[]) {
char name[LEN];
printf("File Name: ");
fgets(name, LEN, stdin);
fflush(stdin);
name[strlen(name)] = '\0';
FILE *file = fopen(name, "wx");
if (!file) {
printf("The file couldn't be created.\n\n");
}
}发布于 2021-07-15 01:58:08
为什么这第一步都不起作用。
fopen(name, "wx")当然会返回NULL,因为name包含'\n'。这样的文件名不太可能存在。
https://stackoverflow.com/questions/68379203
复制相似问题