C ++在减去它时为int添加一个额外的数字

时间:2017-07-25 05:26:36

标签: c++ int subtraction

我正在使用C ++进行ASCII游戏。玩家四处移动避开障碍物('X')。玩家有健康并且在遇到障碍时会失去它。我将health声明为int并设置为100:

/

然后我做了一个检测碰撞的开关盒。 然后我打字:

int health = 100;

然后运行程序。我遇到了一个障碍,它降低了健康状况,但增加了一个额外的数字(例如,而不是说99,它说999)。 我试过调试但什么都没发现。我究竟做错了什么?这是完整的代码:

health--;

1 个答案:

答案 0 :(得分:2)

我无法运行你的程序,但从我可以看到你实际上从未清除过屏幕,你只是在写旧数据,但是因为你没有写出整行,任何旧的除非你覆盖它,否则可能仍然在屏幕上的数据不会神奇地消失。

在%i之后放一些空格,我打赌你的问题就消失了。试试这个:

    printf("Health: %i         ", health);

你会希望在每一行都不会写出相同数量的列的情况下做这种事情。

另外,为什么不将换行符放在printf而不是后续putchar

    printf("Health: %i         \n", health);