c++获得系统时间,将时间写入TXT文件
最近在测试一些东西时,想获取当前的时间方便区分我的程序某一步的确触发了。找了一下获取系统时间的方法。写下了当个随笔,以后好翻。
直接上代码,反正一看就懂。
#include <windows.h>
#include<iostream>
#include<fstream>
using std::cout;
using std::cin;
using std::endl;
int main(void)
{
SYSTEMTIME sys; // 定义一个 SYSTEMTIME 结构体 sys
GetLocalTime(&sys); // GetLocalTime是一个Windows API 函数,用来获取当地的当前系统日期和时间。
cout << sys.wYear <<"/"<< sys.wMonth << "/" << sys.wDay << " " << sys.wHour << ":" << sys.wMinute << ":" << sys.wSecond << endl;
return 0;
}
然后,结果是
20:7:1 好难看,想办法变成20:07:01;查了下,利用流格式控制符可以搞定,头文件是iomanip,代码改为
#include <windows.h>
#include<iostream>
#include<fstream>
#include<iomanip>
using std::cout;
using std::cin;
using std::endl;
using std::setw;
using std::setfill;
int main(void)
{
SYSTEMTIME sys; // 定义一个 SYSTEMTIME 结构体 sys
GetLocalTime(&sys); // GetLocalTime是一个Windows API 函数,用来获取当地的当前系统日期和时间。
cout << sys.wYear <<"/"<< sys.wMonth << "/" << sys.wDay << " " << std::setfill('0') << std::setw(2) << sys.wHour
<< ":" << std::setfill('0') << std::setw(2) << sys.wMinute << ":" << std::setfill('0') << std::setw(2) << sys.wSecond << endl;
return 0;
}
完成了,现在的输出好看一些了。
怎么把这个东西和我的测试结果写到一个TXT文件呢?,代码如下
#include <windows.h>
#include<iostream>
#include<fstream>
#include<iomanip>
using std::cout;
using std::cin;
using std::endl;
using std::setw;
using std::setfill;
using std::ofstream;
using std::ios;
int main(void)
{
SYSTEMTIME sys; // 定义一个 SYSTEMTIME 结构体 sys
GetLocalTime(&sys); // GetLocalTime是一个Windows API 函数,用来获取当地的当前系统日期和时间。
/* cout << sys.wYear <<"/"<< sys.wMonth << "/" << sys.wDay << " " << std::setfill('0') << std::setw(2) << sys.wHour
<< ":" << std::setfill('0') << std::setw(2) << sys.wMinute << ":" << std::setfill('0') << std::setw(2) << sys.wSecond << endl;
*/
ofstream writeFile; //实例一个写文件对象
writeFile.open("C://Users//l50006610//Desktop//代码test//test_output//Test.txt", ios::app); //创建一个Test.txt文本,并且打开Test.txt文件
writeFile<<"test successful "<<sys.wYear << "/" << sys.wMonth << "/" << sys.wDay << " " << std::setfill('0') << std::setw(2) << sys.wHour
<< ":" << std::setfill('0') << std::setw(2) << sys.wMinute << ":" << std::setfill('0') << std::setw(2) << sys.wSecond << endl;
return 0;
}
结果如下