睡眠功能错误

时间:2013-10-28 23:12:14

标签: c++ winapi

我不知道问题是什么,也不知道错误信息,但我在睡眠功能上有错误,第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;

}

2 个答案:

答案 0 :(得分:1)

我放弃了。这是答案。您没有包含Windows头文件。

#include <windows.h>

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

但是你真的需要找到编译器报告错误的位置。如果您看不到错误消息,那么您就陷入了困境。

答案 1 :(得分:0)

致力于提出更好的问题!

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

  • 我的代码是否遵循相同的风格,我是否遵循相同的逻辑模式?
  • 我是否使用相同类型的功能而不是分散在许多API上?
  • 我是否总是以相同的方式对我的代码发表评论?

这些作为初学者似乎并不重要,但它们极大地提高了可读性并帮助其他人更轻松地查看您的问题。你应该做的另一件事是proper indentation

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

总的来说,你的代码非常奇怪而且编写得很糟糕。我可以告诉你,你是年轻的,新的,外国的或愚蠢的。在问一个糟糕的问题之前,你真的应该查看更多关于这些东西的文档。我会用模糊的答案给你一个缓解,但我相信它至少可以帮助你找到自己的答案。