C++输出系统当前时间,并保存于文件中,求解
C语言写:#include<time.h>#include<stdio.h>intmain(void){time_tt=time(0);chartmp[64];strft...
C语言写:
#include <time.h>
#include <stdio.h>
int main( void )
{
time_t t = time(0);
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
puts( tmp );
return 0;
}
C++:
#include<stdlib.h>
#include<iostream>
using namespace std;
void main()
{
system("time");
}
将C语言写的转换为C++原样输出,C++中的system("time");读取的时间有办法通过文件流保存到文件中么?或者用其他可以保存? 展开
#include <time.h>
#include <stdio.h>
int main( void )
{
time_t t = time(0);
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
puts( tmp );
return 0;
}
C++:
#include<stdlib.h>
#include<iostream>
using namespace std;
void main()
{
system("time");
}
将C语言写的转换为C++原样输出,C++中的system("time");读取的时间有办法通过文件流保存到文件中么?或者用其他可以保存? 展开
展开全部
不太明白你c写的转换为c++的意思,.c写的本来就可以直接复制到.cpp作为c++代码进行编译
利用time.h 获取时间是c/c++的标准方法,也就是说,这样写出来的代码,windows和linux都能用;
而system("time")不是c++专用的方法,c语言也可以用,它本质就是在命令行cmd输入命令time 一样,只能显示出结果,无法获得返回值。我估计你是因为这个无法写入文件。
我推荐你是用timer.h来获取时间
给你一段代码参考吧,可以获取当前的时间(c/c++都可以):
#include<time.h>
time_t timeSec=time (NULL); //获取1970.1.1至当前秒数time_t
struct tm * timeinfo= localtime ( &timeSec ); //创建TimeDate,并转化为当地时间,
//struct tm * timeinfo = gmtime ( &timeSec ); //创建TimeDate,并转化为GM时间,
printf ( "The current date/time is: %s\n", asctime (timeinfo) );
//获取年 月 日 时 分 秒 对应的int值:
printf("%d-%d-%d %d:%d:%d\n",timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
---------------------------------------------------------------------
有了上面的时间获取方法,要写入文件也是很简单的了:
FILE *fp=fopen("xxx.txt","w");
fprintf(fp, "%d-%d-%d %d:%d:%d\n",timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
利用time.h 获取时间是c/c++的标准方法,也就是说,这样写出来的代码,windows和linux都能用;
而system("time")不是c++专用的方法,c语言也可以用,它本质就是在命令行cmd输入命令time 一样,只能显示出结果,无法获得返回值。我估计你是因为这个无法写入文件。
我推荐你是用timer.h来获取时间
给你一段代码参考吧,可以获取当前的时间(c/c++都可以):
#include<time.h>
time_t timeSec=time (NULL); //获取1970.1.1至当前秒数time_t
struct tm * timeinfo= localtime ( &timeSec ); //创建TimeDate,并转化为当地时间,
//struct tm * timeinfo = gmtime ( &timeSec ); //创建TimeDate,并转化为GM时间,
printf ( "The current date/time is: %s\n", asctime (timeinfo) );
//获取年 月 日 时 分 秒 对应的int值:
printf("%d-%d-%d %d:%d:%d\n",timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
---------------------------------------------------------------------
有了上面的时间获取方法,要写入文件也是很简单的了:
FILE *fp=fopen("xxx.txt","w");
fprintf(fp, "%d-%d-%d %d:%d:%d\n",timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
追答
因为中国采用北京时间,东八区,比格林威治时间快了8小时
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询