不为人知的scanf
这是一篇为老谭洗白的文章
前几天,我见有人在群里说,谭浩强那本书不咋样,还不少错误。我就看了看他发出来的错误
1 #include<stdio.h> 2 int main(){ 3 int a,b; 4 scanf("%d,%d",&a,&b); 5 printf("%d %d ",a,b); 6 }
那人说,书上一些给出来的代码,连基本的输入都存在问题:
为啥只有15输入进去了,而20却变成了1,1是哪里来的?
我们先把a,b初始化为0再来看看问题所在。
结果发现a的值改变了,但是b的值为0,这说明b没有存储进去,为什么?
这是因为,scanf函数的输入必须和你前面设定的格式一模一样,比如说这个例子
只有你的键入和你设定的“%d,%d”想符合时,才能正确存储进去