-1

我刚开始使用 c/c++,我经常会遇到这个错误。有时我只需在控制台中输入 c ,程序就会继续正常运行。但其他时候不会,就像这段代码一样。

我正在尝试创建一个简单的计时器/秒表,以显示程序开始时经过的秒数。我试图根据变量是 1 还是 0 来控制它的开启或关闭状态。

#include <iostream>
#include <unistd.h>
using namespace std;

int main()
{    
    int onoff = 1;

    if (onoff == 1)
    {
        int timex = 0;
        while (onoff < 1)
        {
            timex++;
            printf("time: %d", timex);
            sleep(1000);
        }
    } 
    else if (onoff == 0)
    {
        char timex[] = "off";
        printf("the timer is %s", timex);
    }

    return 0;
}

也许我只需要弄清楚如何调试?如果是这样的话,我有什么地方可以学习如何有效地调试?

4

1 回答 1

0

true为/ , on / off 或任何两个状态变量使用布尔变量false,这使您的程序更易于阅读。另外,重命名您的变量。

int main()
{
  bool timer_on = true;
  if (timer_on)
  {
    int timex = 0;
    while (timer_on)
    {
      ++timex;
      cout << "time: " << timex << "\n";  // Since you supplied the C++ tag.
      sleep(10000);  // This is a platform or RTOS specific function.
    }
  }
  else if (timer_off)
  {
    cout << "The timer is " << timex << "\n";
  }
  return 0;
}

一个问题是您在语句timexthen部分内定义,if并且该部分内的代码无法访问else

你的梯子缺少最后一个else条款。if-else if也许你想要类似的东西:

  else
  {
    if (!timer_on)
    {
    }
  }

或者可能if不需要那个内部,因为else如果 timer_on 是,代码将在语句中执行false

于 2013-08-20T19:43:59.160 回答