C语言scanf输入时可以加逗号的吗?
%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;
用scanf()读取数据时,输入的格式必须和scanf()的格式控制字符串对应,比如说:
1、scanf("%d,%d",&a,&b);因为两个%d之间有一个逗号,所以在输入时两个整数之间只能用逗号分隔,如果用其它符号分隔就会出错(比如说此时用空格、回车分隔就会出错)
2、scanf("%d%d",&a,&b);这个格式控制字符串就可以用空白分隔(空格,回车都可以)
无论课本还是老师讲课,都说可以加逗号,只要注意前后格式一致就好。例如
scanf("%d,%d",&a,&b);
在程序中也写 1,2,3
即便这样 也还是出错
是因为 即使在你写程序时,逗号都是用英文的。
但是!在你自己写的程序里键入时,不知为啥自动变为中文,所以注意用英语逗号就好了。
就是说,如果按我们老师说的,不加逗号的话,我们输入就是a b中间空格就好,但是如果加了逗号的话,输入时就是a,b不然会出错对吗?
嗯,一般习惯不加东西,这样值之间用空格、\r \n \t都可以,比较随意
而有符号后可能有歧义,特别是%s这种
2013-07-16