c语言scanf输入时为什么不能用逗号隔开

如题所述

c语言scanf输入时能用逗号隔开,但是输入数据的时候一定也要加上逗号。用scanf()读取数据时,输入的格式必须和scanf()的格式控制字符串对应。

对于标准输入函数scanf来说,括号内的格式字符串,也就是由" "中的部分,除了%引导的格式字符之外,所有的其他字符必须在输入数据时原样原位置输入。例如:

scaf("%d,%d",&a,&b);

两个%d之间的逗号就是普通字符,它必须在你输入a和b的值的时候,也输入到ab之间。输入如下:

5,6

如果不输入逗号,或者输入空格,输入均不会正确。



扩展资料:

scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

如:scanf("%d %d",&a,&b); 

函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;

如果只有a被成功读入,返回值为1;

如果a和b都未被成功读入,返回值为0;

如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-04
可以用逗号或者其他符号隔开的,其实:
scanf("%d %d",&a,&b);
这中间是用空格格开,也可以用 ,/ 等等,都可以隔开,比如:
scanf("%d,%d");
那么你在输入的时候,你要跟上面的格式一样:
17,18
这样就可以了。
第2个回答  2015-06-04
标准C里面面,scanf()函数是格式化输入函数,他的特点就是原样输入,
比如说
int a;
scanf("A%d",&a);
那就得你先输入了一个A之后,才会把接受到的数给a
比如你从键盘输入了123aaA321aa,然后回车
那前面的123aa编译器是不会管的,接受到A之后,才会把A后面的整数赋值给a
至于再之后的内容,就会等下次输入再处理,
因为这一个scanf接收一个A和一个整数,已经执行完毕了本回答被网友采纳
第3个回答  2017-06-20
怎么不能呢?能的,这取决于你的输入格式
如果是这样:
scanf("%d %d %d",&a,&b,&c);
输入时应当用空格隔开

如果是这样:
scanf("%d,%d,%d",&a,&b,&c);
输入时应当用逗号隔开
第4个回答  2019-06-15
我也在学习,练习习题过程中有一种情况是不能用逗号,空格等等的,就是涉及到%c的情况,因为逗号,空格等都会被认为是字符。
eg.
scanf("%d%c%d",a,b,c);
如果你输入了1 2 3(1空格2空格3),那么第一个空格就被当作字符了。
相似回答