在c++中创建一个数字时钟,我得到了这些错误:期望的;在reloj语句是对函数的引用,而不是调用之前'time‘语句没有作用''reloj'’是未声明的(首先使用这个函数)每个未声明的标识符对于它出现的每个函数只报告一次
#include<iostream>
#include<Windows.h>
using namespace std;
struct time
{
int hr,mint,seg;
};
int main()
{
time reloj;
reloj.hr = 0;
reloj.mint = 0;
reloj.seg = 0;
for(int i = 0; i<24; i++)
{
if(reloj.hr == 23)
{
reloj.hr = 0;
}
for(int j = 0; j<60; j++)
{
if(reloj.mint == 59)
{
reloj.mint = 0;
}
for(int k = 0; k<60; k++)
{
if(reloj.seg == 59)
{
reloj.seg = 0;
}
cout<<reloj.hr<<" : "<<reloj.mint<<" : "<<reloj.seg<<endl;
reloj.seg++;
Sleep(1000);
system("Cls");
}
reloj.mint++;
}
reloj.hr++;
}
}发布于 2013-11-07 16:13:25
在全局名称空间中使用using namespace std;不是一个好主意,它可能会将std::time和许多其他名称一起丢弃在那里。这将与您的time类发生冲突。
不幸的是,简单地删除邪恶的using在这里不是一个解决方案,因为time来自C库。允许实现(许多实现都这样做)将C库中的名称转储到全局名称空间中,无论您是否希望它们出现在全局名称空间中。
所以你的选择是:
time;发布于 2021-05-02 23:52:26
我有另一个密码:
#include <iostream>
#include <unistd.h>
#include <ctime>
using namespace std;
void Timer()
{
int HOUR = 0, MINUTE = 0 , SECOND = 0;
time_t now = time(0);
tm *ltm = localtime(&now);
HOUR = ltm->tm_hour;
MINUTE = ltm->tm_min;
SECOND = ltm->tm_sec;
while(true)
{
system("clear");
cout << HOUR << ":" << MINUTE << ":" << SECOND << endl;
SECOND ++;
if(SECOND == 60)
{
MINUTE++;
SECOND = 0;
if(MINUTE == 60);
{
HOUR++;
MINUTE = 0;
if(HOUR ==24)
{
HOUR = 0;
}
}
}
sleep(1);
}
}
int main()
{
Timer();
}*如果您在WINDOWS上使用此选项,请将系统(“clear”)更改为系统(“cls”)
https://stackoverflow.com/questions/19828258
复制相似问题