无论我以什么形式输入都只有a的值,我问了老师,老师讲的太模糊了。。。
首先你要确定a和b的变量类型,是整型还是字符数组。
如果是字符数组,那么你输入时就要在两个字符串之间加逗号,因为你的scanf语句中指定了用逗号分隔
scanf()
函数对%s
格式输入时,一直读入字符直到遇到空白符(空格,tab,或回车)结束,另外scanf会忽略下一个输入数据前的所有空白符。所以如果你一定要用逗号分隔输入,那么这个逗号和%s得有空格分开,否则的话输入流中的逗号会被当做字符串读入,scanf再匹配输入格式中的逗号时失败返回
#include <stdio.h>
int main()
{
char a[20], b[20], c[20], d[20];
scanf("%s%s", a, b); // 输入时两个字符串用至少一个空白符(即空格,tab,或回车)隔开两个字符串比如abc 123
scanf("%s , %s", c, d); // 输入时,两个字符串和逗号之间都必须有至少一个空白符隔开,比如abc , 123
printf("%s,%s\n", a, b);
printf("%s,%s\n", c, d);
return 0;
}
运行
$ gcc -Wall main.c
$ ./a.out
abc 123
abc , 123
abc,123
abc,123
a,b
两数据中间要加逗号
或者输入语句改成scanf(“%s%s”,&a,&b)
直接这样写
scanf(“%s%s”,&a,&b)
输入时两个字符串之间加个空格
去掉"%s,%s"中的逗号,否则输入的逗号会被认为时字符串的一部分而不当作分隔符,输入时用空格隔开两个字符串
gets(a);
gets(b);
分别获取两个字符串,
有帮助请采纳