有人可以告诉我如何在c ++中显示实时。我的意思是,当程序运行时,您可以看到秒钟和/或分钟倒计时,就像挂在墙上的真正时钟
这就是我所拥有的:
int main ()
{
time_t rawtime; //creates and object of the built in time function
struct tm * timeinfo; //no idea what this do
time ( &rawtime ); //gets the time from the computer
timeinfo = localtime ( &rawtime ); //store that time here
//it displays current date and time except time is frozen and not real time
cout<< "Current local time and date: "<<asctime (timeinfo)<< endl;
system("pause");
return 0;
}
答案 0 :(得分:3)
不是在C ++中(在C / Win32中),但有效。
#include <stdio.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
SYSTEMTIME stime; //structure to store system time (in usual time format)
FILETIME ltime; //structure to store local time (local time in 64 bits)
FILETIME ftTimeStamp;
char TimeStamp[256];//to store TimeStamp information
while (true){
////Prepare data needed to output the time stamp:
GetSystemTimeAsFileTime(&ftTimeStamp); // Gets the current system time
FileTimeToLocalFileTime (&ftTimeStamp,<ime);//convert in local time and store in ltime
FileTimeToSystemTime(<ime,&stime);//convert in system time and store in stime
sprintf(TimeStamp, "%d:%d:%d, %d.%d.%d \r",stime.wHour,stime.wMinute,stime.wSecond, stime.wDay,stime.wMonth,stime.wYear);
printf(TimeStamp);
Sleep(1000);
}
system("pause");
return 0;
}
答案 1 :(得分:1)
一些基本的C ++会有很长的路要走:www.cplusplus.com
int main ()
{
time_t rawtime; //creates and object of the built in time function
struct tm * timeinfo; //no idea what this do
while (true)
{
time( &rawtime ); //gets the time from the computer
timeinfo = localtime( &rawtime ); //store that time here
//it displays current date and time except time is frozen and not real time
cout<< "Current local time and date: "<<asctime (timeinfo)<< endl;
sleep(1000); //1 second sleep
}
system("pause");
return 0;
}
答案 2 :(得分:1)
试试这个:
while (true) {
std::cout << '\r'; // return to the beginning of the line
getAndPrintTime(); // do what you do now, but don't write endl
}
假设你想要覆盖终端中的同一个地方,两个简单的东西是'\ r'用于回车,'\ b'用于退格(如果你想要备份一个角色而不是一个整线)。
答案 3 :(得分:1)
添加system("cls");
像这样:
time_t rawtime;
struct tm* timeinfo;
while(true)
{
system("cls");
time(&rawtime);
timeinfo=localtime(&rawtime);
cout<<"Time : "<<asctime(timeinfo);
Sleep(1000);
}
答案 4 :(得分:0)
标准C ++语言在2011年发布的最新C ++ 11标准之前没有任何时间概念,很少实现。在Linux上,您可以考虑使用实现大部分功能的GCC 4.6或4.7。
(旧版C ++ 03为您提供<ctime>
)
否则,时间由操作系统特定的库和系统调用(例如Linux和Posix上的gettimeofday和clock_gettime)提供。
如果你完全符合C ++ 11标准的最新C ++标准(可能不太可能,特别是在Windows上),你可以使用<chrono>
标准标题。
答案 5 :(得分:0)
下面是我的程序中的一项功能,它显示星期几,时间(hh:mm)和日期(dd / mm / yyy)。当我使用SYSTEMTIME结构时,我意识到显示的时间太快了四个小时,所以我求助于这种方法。希望这可以帮助。 面向Windows用户...
void time()
{
cout << "The current date is: ";
system("date/t");
cout << "The current time is: ";
system("time/t");
cout << "Time zone: ";
system("tzutil /g");
cout << endl;
}
注意:这可以通过查询系统的日期,时间和时区来工作。大多数经验丰富的程序员都不建议使用system()
工具,但这最终取决于您。