C语言scanf输入时可以加逗号的吗?

例如scanf("%d,%d",&a,&b);
%d之间可以加逗号的吗?我们老师上课的时候说输入多个数字的话,%d之间不能加其他的东西
就是scanf("%d%d",&a,&b);
老师说加其他的可能会出错,但是我看谭浩强的书上是有加逗号的,到底能不能加?

可以,但是输入数据的时候一定也要加上逗号。

用scanf()读取数据时,输入的格式必须和scanf()的格式控制字符串对应,比如说:

1、scanf("%d,%d",&a,&b);因为两个%d之间有一个逗号,所以在输入时两个整数之间只能用逗号分隔,如果用其它符号分隔就会出错(比如说此时用空格、回车分隔就会出错)

2、scanf("%d%d",&a,&b);这个格式控制字符串就可以用空白分隔(空格,回车都可以)

扩展资料:

C语言逗号运算符:

逗号运算符是所有运算符中级别最低的,遇到逗号运算符表示运算结束;

int i=0;

int j=(i++,i++,i++);

printf("i=%d,j=%d\n", i,j);//i=3,j=2;i++遇;才算结束

i=0;

int k=(i++)+(i++)+(i++);

printf("i=%d,k=%d\n", i,k);//i=3,k=0

int a=10;

int b;

int num = (a = 19, b = 10, a + 1);

printf("a=%d,b=%d,num=%d\n", a,b,num);//a=19,b=10,num=20 

C语言逗号表达式:

这种类型的运算符成为逗号表达式,又称为“顺序求值运算符”。 

int a=10;

a = 3 * 5, a * 4;

printf("%d\n", a);//15;把a = 3 * 5作为一个整体,是一个赋值语句;后面a * 4是另外一个语句;

a=10;

printf("%d\n", (a = 3 * 5, a * 4));//60;括号内是一个整体,它的值是最后一个表达式的值,先运行得出a=15,后运算15*4=60;

a=10;

printf("%d\n", a = 3 * 5, a * 4);//15;这里的逗号是作为参数的分隔作用,a=15,后面的a * 4没有打印;

a=10;

printf("%d,%d\n", a = 3 * 5, a * 4);//15,40;

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-22
可以,但是输入数据的时候一定也要加上逗号。
用scanf()读取数据时,输入的格式必须和scanf()的格式控制字符串对应,比如说:
1、scanf("%d,%d",&a,&b);因为两个%d之间有一个逗号,所以在输入时两个整数之间只能用逗号分隔,如果用其它符号分隔就会出错(比如说此时用空格、回车分隔就会出错)
2、scanf("%d%d",&a,&b);这个格式控制字符串就可以用空白分隔(空格,回车都可以)
第2个回答  2019-09-07
兄弟们,我终于发现了。
无论课本还是老师讲课,都说可以加逗号,只要注意前后格式一致就好。例如
scanf("%d,%d",&a,&b);
在程序中也写 1,2,3
即便这样 也还是出错
是因为 即使在你写程序时,逗号都是用英文的。
但是!在你自己写的程序里键入时,不知为啥自动变为中文,所以注意用英语逗号就好了。
第3个回答  2013-07-16
能加,但是像上面的,执行输入两个整数时,也要加逗号追问

就是说,如果按我们老师说的,不加逗号的话,我们输入就是a b中间空格就好,但是如果加了逗号的话,输入时就是a,b不然会出错对吗?

追答

嗯,一般习惯不加东西,这样值之间用空格、\r \n \t都可以,比较随意
而有符号后可能有歧义,特别是%s这种

本回答被提问者采纳
第4个回答  2013-07-16
可以加,但是最好还是不加吧!!!如果是竞赛的话,规则基本上都是不加,
相似回答