如果像你所说,运行有能写入成功的时候。说明代码没出错。
那么就在写入方式上,wb+是新建二进制,已存在删除,允许读写。
那么如果文件无法删除,比如文本进程被引用之类,就影响执行。
简单说,你要用wb+,运行程序的时候,尽量不要对原文件进行其他操作。
或者你直接代码每次新建一个新的文件,不重名。
追问每次文件都重新生成了,可以看到文件的时间一直在改变,就是文件内容没有!
追答你不是说,有写入成功的么?要是一次写入都没成功,那你肯定是写入代码有问题。fputs?fprintf?
追问给你看我的代码
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/aa18972bd40735fa31fd86b590510fb30f2408a9?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答我写了和你类似的代码,没问题,可以写入。
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/b21bb051f8198618cacfd88944ed2e738bd4e637?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
#include <stdio.h>
#include<time.h>
int main()
{
FILE *fp=NULL;
fp=fopen("c:\\test","wb+");
if(fp)
{
fseek(fp, 0, SEEK_END);
struct tm *tm=NULL;
time_t rt=time(NULL);
tm=localtime(&rt);
fprintf(fp,"%4d-%2d-%2d %2d:%2d:%2d",tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
fclose(fp);
}
else
printf("ERROR!\n");
return 0;
}