-3

当我尝试打印到文件时,它会出现分段错误。如何打印归档日期和时间?

#include <time.h>
#include <stdio.h>

main()
{
    FILE *fp;
    time_t mytime;

    mytime=time(NULL);
    fp=("sys.txt","w+");

    fprintf(fp,"%s",ctime(&mytime));
    fclose(fp);
    return 0;
}
4

3 回答 3

0

您忘记了(a)调用fopen()和(b)注意编译器的警告。如果您没有收到编译器警告,请打开它们或获得更好的编译器。

于 2013-11-07T02:11:38.930 回答
0

替换fp=("sys.txt","w+");fp=fopen("sys.txt","w+");

并阅读C 中的文件操作

于 2013-11-07T06:31:46.520 回答
0

当您的程序尝试访问它不拥有或没有访问权限的内存时,通常会发生分段错误。

此问题出现在您的程序中,因为您错误地尝试打开文件。您必须使用fopen()调用打开文件:

FILE *fopen(const char *path, const char *mode);

在当前状态下,程序尝试将字符串写入由包含一些随机值的文件描述符描述的文件。也就是说,它会尝试写入一个可能不存在且绝对没有写入权限的随机文件。

如果你用 gcc 编译你的代码,你会看到这个通知你一个潜在的问题:

warning: assignment from incompatible pointer type

于 2013-11-07T05:07:12.653 回答