我的 C 程序在新行上打印 -39,我不明白为什么
My C program prints -39 on a new line and I can't figure out why
我一直在尝试在我的大学里尝试使用 C class,我发现我的程序可以做一些事情,即使我没有告诉它!
我的完整代码:
#include <stdio.h>
int main(void) {
int c;
while ((c = getchar()) != EOF) {
printf("%d\n", (c - '1'));
}
return 0;
}
它的输出如下所示:
7
6
-39
现在,谁能告诉我为什么要打印 -39?
如果你看 this 就很清楚了。首先输入 8
,然后输入 7
,然后输入 \n
(或按 ENTER),其 ASCII 值为 10
。 10-49
(49
是 '1'
的 ascii 值)是 -39
你打印出来的。
因为你在末尾输入了'enter' 所以它减去 enter 的 ascii 值 ascii 值为 1 .
enter 的ascii 值为10 & 1 的ascii 为49 所以10-49 等于39 .
我一直在尝试在我的大学里尝试使用 C class,我发现我的程序可以做一些事情,即使我没有告诉它!
我的完整代码:
#include <stdio.h>
int main(void) {
int c;
while ((c = getchar()) != EOF) {
printf("%d\n", (c - '1'));
}
return 0;
}
它的输出如下所示:
7
6
-39
现在,谁能告诉我为什么要打印 -39?
如果你看 this 就很清楚了。首先输入 8
,然后输入 7
,然后输入 \n
(或按 ENTER),其 ASCII 值为 10
。 10-49
(49
是 '1'
的 ascii 值)是 -39
你打印出来的。
因为你在末尾输入了'enter' 所以它减去 enter 的 ascii 值 ascii 值为 1 .
enter 的ascii 值为10 & 1 的ascii 为49 所以10-49 等于39 .