【发布时间】:2020-09-05 14:33:45
【问题描述】:
这里是初学者,我一直在练习字符串和文件,我一直在尝试生成这个以当前日期为文件名的文本文件,但由于某种原因,fopen 不会生成文件。有什么建议吗?
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
main() {
FILE *fLog;
time_t actualtime;
struct tm *day;
char Date[13];
time(&actualtime);
day = localtime(&actualtime);
strftime(Date, 10, "%x", day);
strcat(Date, ".txt");
printf("%s", Date);
fLog = fopen(Date, "w");
fprintf(fLog, "Hello world");
fclose(fLog);
}
【问题讨论】:
-
您对
strftime的调用产生了无效的文件名:09/05/20.txt其中包含目录分隔符。尝试在您的桌面上创建一个看起来像这样的文件,看看操作系统告诉您什么。它可能做的另一件事是尝试找到可能不存在的目录路径09/05/,这就是为什么你不能在那里创建文件20.txt。 -
作为诊断,测试库函数返回值很有用,并检查全局
errno以了解库函数失败原因的详细信息。从教程示例中省略,但常用于工业级程序。见stackoverflow.com/questions/16507816/…
标签: c