c语言scanf()使用中的逗号问题
代码1:
int a, b;
a=10;
b=20;
scanf("%d,%d,\n", &a, &b); // a=100, b =200,错误用法
printf("%d,%d,\n", a, b);
代码2:
int a, b;
a=10;
b=20;
scanf("%d%d,\n", &a, &b); // a=100, b =200,正确用法
printf("%d,%d,\n", b,a);
请问输出结果有什么差异?
是有差异的,代码1输出时,a=100, b=20;而代码2输出时,a=100,b=200。根据结果,我们可以看到第一个有点问题的,本来我们想把接盘输入的打印出来,键盘输入100和200,打印也应该是100和200,然而第一个只是输出了100和20,换句话说就是200没有给b赋值。原因就差在scanf里面的那个多的逗号上,两个数的输出在scanf()中是不能加逗号的,在printf上是可以加的。
也就是scanf("%d%d,\n", &a, &b)是正确的,%d和%d之间没有逗号。
已经用Devcpp验证过了。

本文结束。