关于scanf()函数%d后面带逗号的情况

您好, 先看下这个程序, scanf()函数中带逗号的情况:
#include<stdio.h>
int main(void)
{

int age1,age2;  /* 变量*/ 


printf("Enter your age  .\n");
scanf("%d , %d",&age1,&age2);  /* 两个%d之间带了逗号  */ 
printf("%d,%d",age1,age2);



return 0; 

}

下面是运行的情况:
1、正常情况下,输入 98,99 ,运行如下:

img


这个是正常的

2、如果输入的是 98, 99 , 则运行的结果如下:

img

这个结果就是错的了,99 怎么会变成1呢, scanf 不是会跳过整数之前的所有空白吗。

3、如果输入的是 98 99, 则运行的结果也是如下:

img


这个结果也是错误的,输入的时候 中间没有逗号,但是结果怎么和2 一样呢。

谢谢!

scanf中的样式是什么样的,你输入的时候必须跟scanf中的样式一致,输入98, 99 的时候,要么逗号用成了中文的逗号,要么就是有多余的空格。

我们到知道采用scanf("%s",a);当遇到空格就自动截断了,你最好把两个变量附上处置,再看看情况。