我的 C 程序在新行上打印 -39,我不知道为什么



我一直在玩并尝试在我的大学课堂上尝试使用 C,我发现了我的程序所做的一些事情,即使我没有告诉它!

我的完整代码:

#include <stdio.h>
int main(void) {
  int c;
  while ((c = getchar()) != EOF) {
    printf("%dn", (c - '1'));
  }
 return 0;
}

它的输出如下所示:

7
6
-39

现在,谁能告诉我为什么要打印 -39?

如果你看看这个,就很清楚了。首先输入8然后输入7然后输入 ASCII 值为 10n(或按 ENTER(。 10-49(49'1'的ASCII值(是你打印-39

因为您在末尾输入了"Enter",因此它会减去 ASCII 值为 1 的 Enter 的 ASCII 值。

输入的 ascii 值为 10,1 的 ascii 值为 49,因此 10-49 等于 39

相关内容

  • 没有找到相关文章

最新更新