【发布时间】:2018-04-24 03:38:21
【问题描述】:
我尝试使用以下 C 程序从标准输入读取整数。
#include <unistd.h>
#include <stdio.h>
int main() {
int a = 0;
read(0, &a, sizeof(int));
printf ("a = %d\n",a);
}
但是,我得到了奇怪的结果:当我输入 34 时,我想程序输出 34,但结果却是 668723。为什么?
【问题讨论】:
-
668723 是
0xA3433是0x0A3433是 ASCII 换行符,4,3反向,由于字节序。 -
scanf("%d", &a);? -
不要将 ascii 与二进制混合
-
你能链接到
read()上的文档吗? -
read读取字节,它不会将 ascii 转换为整数
标签: c