首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在C++中打开文件流

无法在C++中打开文件流
EN

Stack Overflow用户
提问于 2021-07-14 21:39:39
回答 1查看 40关注 0票数 0

我必须用C语言编写一个简单的数据库(控制台应用程序):你可以输入性别、姓名和地址,数据将保存在一个名为“Person”的结构数组中。然后,您还可以显示所有条目或再次删除条目。到目前一切尚好。

现在,我必须添加一些函数来将数据保存到.csv文件中,然后再次从该文件中读取数据。但是,函数fopen()总是返回一个NULL-pointer,所以我甚至无法进入读取或写入部分。下面是我的代码。我希望你能告诉我为什么这第一步都不起作用。我对自己的C语言能力很快就失去了信心。

代码语言:javascript
复制
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");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2021-07-15 01:58:08

为什么这第一步都不起作用。

fopen(name, "wx")当然会返回NULL,因为name包含'\n'。这样的文件名不太可能存在。

参见Removing trailing newline character from fgets() input

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68379203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档