-4

我不知道问题是什么,也不知道错误消息,但我在睡眠功能上出现错误,第 41 行。我无法弄清楚。在此先感谢各位------------(我无话可说,但它不会发布更多的话)编辑——另一个错误出现在 if(GetAsyncKeyState) 行

#include <iostream>
#include <cstdlib>


using namespace std;

int main(int argc, char *argv[])
{

                bool exit=false;
                int hour, minute, second=0;
    cout<<"Enter the hour: "<<endl;
    cin>>hour;
    system("cls");
    cout<<"Enter the minute: "<<endl;
    cin>>minute;
    system("cls");
    while(exit==false) {
if(minute>9 && second>9)
{
    cout<<hour<<":"<<minute<<":"<<second;

}
if(minute<10 && second<10)
{
    cout<<hour<<":0"<<minute<<":0"<<second;

}
if(minute<10 && second>9)
{
    cout<<hour<<":0"<<minute<<":"<<second;

}
if(minute>9 && second<10)
{
    cout<<hour<<":"<<minute<<":0"<<second;

}

Sleep(1000);
second++;



if(GetAsyncKeyState(VK_ESCAPE))
{
    exit=true;

}
            }



    cout<<endl;
return EXIT_SUCCESS;

}
4

2 回答 2

1

我屈服了。这就是答案。您没有包含 windows 头文件。

#include <windows.h>

这就是编译器抱怨的原因。它找不到您所做的 API 调用的声明。您进行的 API 调用的文档列出了此要求。

但是您确实需要找到编译器报告错误的位置。如果您看不到错误消息,那么您就有很大的麻烦。

于 2013-10-28T23:24:05.790 回答
0

努力提出更好的问题!

我可以告诉您,您是 C++ 新手,但您需要做的一件事是保持一致。一致性涉及以下步骤:

  • 我的代码是否遵循相同的风格,我是否遵循相同的逻辑模式?
  • 我是否使用相同类型的函数而不是分散在多个 API 上?
  • 我总是以同样的方式评论我的代码吗?

这些对于初学者来说可能看起来并不重要,但它们极大地提高了可读性并帮助其他人更容易地看到你的问题。您应该做的另一件事是适当的缩进

就您的代码而言,我相信您打算包含许多您在循环中编写的语句,而您没有。您还混合使用了 Windows 功能和系统功能,我认为这很可怕(更不用说 unsafe 了)。您应该使用其中一种。您获得时间的方式毫无意义,因为您可以通过适当的搜索引擎轻松找到标准功能。您的 Sleep() 函数很好,但您可能不明白系统会在您作为参数传递的持续时间内暂停线程的执行。为避免这种情况,您应该使用某种计时器或找到更好的打印输出方式。您没有包含正确的头文件,这在 C++ 中很重要。对于这种情况,您可能还想尝试使用 for 循环而不是 while 循环。

总体而言,您的代码非常怪诞且写得不好。我可以告诉你是年轻的、新的、外国的或愚蠢的。在问一个糟糕的问题之前,您确实应该查看更多有关这些内容的文档。我会用我模糊的答案给你一个缓刑,但我相信它至少会帮助你自己找到一些答案。

于 2013-10-28T23:57:29.693 回答