scanf(“%s,%s”,&a,&b)要怎么输入数据才能得到理想结果?

无论我以什么形式输入都只有a的值,我问了老师,老师讲的太模糊了。。。

img

首先你要确定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);
分别获取两个字符串,
有帮助请采纳