首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字时钟c++

数字时钟c++
EN

Stack Overflow用户
提问于 2013-11-07 12:53:37
回答 2查看 3.3K关注 0票数 1

在c++中创建一个数字时钟,我得到了这些错误:期望的;在reloj语句是对函数的引用,而不是调用之前'time‘语句没有作用''reloj'’是未声明的(首先使用这个函数)每个未声明的标识符对于它出现的每个函数只报告一次

代码语言:javascript
复制
#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++;
}
}
EN

回答 2

Stack Overflow用户

发布于 2013-11-07 16:13:25

在全局名称空间中使用using namespace std;不是一个好主意,它可能会将std::time和许多其他名称一起丢弃在那里。这将与您的time类发生冲突。

不幸的是,简单地删除邪恶的using在这里不是一个解决方案,因为time来自C库。允许实现(许多实现都这样做)将C库中的名称转储到全局名称空间中,无论您是否希望它们出现在全局名称空间中。

所以你的选择是:

  • 将您的类重命名,或将其放入您自己的time;
  • Don't中作为,而不仅仅是
    • 包括任何标准库标题,以防它们与您的全局名称混淆。
票数 1
EN

Stack Overflow用户

发布于 2021-05-02 23:52:26

我有另一个密码:

代码语言:javascript
复制
#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”)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19828258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档