我正在处理一个问题,这个问题要求我调整一个文件名,然后使用调整后的文件名创建一个新文件。我将调整后的文件名存储在一个名为nameHolder[]的数组中。我希望使用nameHolder,它包含“file.txt”作为新文件的名称。我拥有的代码如下:
void createNewFile(char nameHolder[])
{
FILE* myNewFile = fopen(nameHolder, "r");
fprintf("****************%s******************", nameHolder);
fclose(myNewFile);
}
我得到了myNewFile的NULL,我相信这是由于目录中不存在“file.txt”,但问题要求我创建一个完全不存在的新文件。
2条答案
按热度按时间c7rzv4ha1#
你创建一个文件,截断它现在这样:
否则,你想要的模式“a”(或“a+”)。
hts6caw32#
来自手册页:
fopen()、fdopen()和freopen()在成功完成后返回FILE指针,否则返回NULL并设置errno来指示错误。
对于要读取的文件,它应该存在,但在您的情况下不存在。
fopen
在失败时返回NULL
,您应该检查它。无关:
fprintf
的原型是:第一个参数应为
FILE *
,请修复它。