【发布时间】:2017-03-24 05:31:07
【问题描述】:
假设,“5181 2710 9900 0012”- 是一串数字。我需要一次取一个数字作为输入,从没有空格的数字串中进行算术运算。所以,我写那个,
int a[20];
for(int i=0;i<16;i++)
{
scanf("%d",&a[i]);
}
但它没有给我预期的结果。但是当我使用“%1d”而不是“%d”时,它给了我预期的结果。那么,它是如何工作的?
【问题讨论】:
-
scanf 中的 s 不应该是小写吗?
-
是的,除此之外,就像@Gerard van Helden 所说,使用 %1d 来确定。另外,如果您使用 gcc,请确保使用 gcc -Wall -o yourprogram yourprogram.c 来检查您的程序是否正确编译。我编译了你的代码,它给了我一个错误,因为 scanf 不是小写的,只是这样的小写。
-
在您的代码中?没有,它不会编译,正如@RoadRunner 所评论的那样。
-
对不起,我把scanf函数的s用大写字母写错了。但这根本不是问题。问题是我的代码中“%d”和“%1d”的使用根据我的问题陈述给了我不同的输出。