C语言 使用字符串打开文件

rvpgvaaj  于 2022-12-17  发布在  其他
关注(0)|答案(2)|浏览(121)

我正在处理一个问题,这个问题要求我调整一个文件名,然后使用调整后的文件名创建一个新文件。我将调整后的文件名存储在一个名为nameHolder[]的数组中。我希望使用nameHolder,它包含“file.txt”作为新文件的名称。我拥有的代码如下:

void createNewFile(char nameHolder[])
{
    
    FILE* myNewFile = fopen(nameHolder, "r");

    fprintf("****************%s******************", nameHolder);

    fclose(myNewFile);
}

我得到了myNewFile的NULL,我相信这是由于目录中不存在“file.txt”,但问题要求我创建一个完全不存在的新文件。

c7rzv4ha

c7rzv4ha1#

你创建一个文件,截断它现在这样:

FILE *myNewFile = fopen(nameHolder, "w");

否则,你想要的模式“a”(或“a+”)。

hts6caw3

hts6caw32#

来自手册页:

  • 返回值 *

fopen()、fdopen()和freopen()在成功完成后返回FILE指针,否则返回NULL并设置errno来指示错误。
对于要读取的文件,它应该存在,但在您的情况下不存在。fopen在失败时返回NULL,您应该检查它。

无关:

fprintf的原型是:

int fprintf(FILE *restrict stream, const char *restrict format, ...);

第一个参数应为FILE *,请修复它。

相关问题