32 位系统下如何用 scanf() 输入短整型数据

来源:百度知道 编辑:UC知道 时间:2024/06/06 14:27:26
用 %d 是不行的。

测试程序

#include <stdio.h>

int main(void)
{
short a[4] = {1,2,0,0};
scanf("%d", a);
printf("%d %d", a[0], a[1]);
getch();
}
hwuaxj :这样不行吧,虽然可以成功的输入“b”。但同时会修改“b”后面 16位 的数据。

比如测试程序中,输入 a[0] 时同时修改了 a[1] 的内容。

georangel :有没有其他办法,类似 %d 那样的,用 C。

short a[4] = {1,2,0,0};
char temp[8];
scanf("%s",temp);
a[0] = atoi(temp);
//为什么不用C++?
//cin>>a[0];
printf("%d %d", a[0], a[1]);

#include <stdio.h>

void main(void)
{
short a[4] = {1,2,0,0};
short b;
scanf("%d", &b);
printf("b=%d, a[0]=%d, a[1]=%d\n",b, a[0], a[1]);
getchar();
}