C语言输入函数

scanf函数 是不是必须让输入变量的格式与格式字符串一致吗?
比如scanf("%c %c %c",&a,&b,&c)是不是输入格式也必须是a(空格)
b(空格)c?
scanf("%c,%c,%c",&a,&b,&c) 输入格式必须是a,b,c?
scanf("a=%d,b=%d,c=%d",&a,&b,&c) 输入也必须为a=,b=,c=,的格式?

麻烦知道的看下我说的对不对,还有哪些需要注意的地方 谢谢!

C语言中两种方法都可以,但有区别scanf("%s",s)是读取不到空格的。而gets(s)可以读取。
两种方法都是一个一个字符读取的。不同的是scanf是遇到空格或者回车键就会结束,但gets是只有输入回车键才会终止读取字符串!下面是例子:

#include <stdio.h>
int main()
{
    char x[10];
    scanf("%s",x);
    printf("%s",x);
    return 0;
}

下面是gets;

#include <stdio.h>
int main()
{
    char x[10];
    gets(x);
    printf("%s",x);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-26
我帮你上机实践了一下,scanf("%c %c %c",&a,&b,&c)输入格式也可以是a(空格)b(空格)c,也可以是abc。
而scanf("%c,%c,%c",&a,&b,&c) 输入格式必须是a,b,c。
scanf("a=%d,b=%d,c=%d",&a,&b,&c) 输入也必须为a=,b=,c=,的格式。本回答被提问者和网友采纳
第2个回答  2008-11-24
scanf("%c %c %c",&a,&b,&c),三个输入值必须用空格或换行分开,多少个空格没关系。

scanf("%c,%c,%c",&a,&b,&c) 输入格式必须是a,b,c? 是的,就依序输入要存入a的字符,存入b的字符,然后c.

scanf("a=%d,b=%d,c=%d",&a,&b,&c)
这行执行时会出错的,scanf里面只能有%i %s %c这些flag。显示的话应该用printf.
第3个回答  2008-11-26
scanf("a=%d,b=%d,c=%d",&a,&b,&c)
是错误的
scanf()与printf()函数不一样的,
scanf("%c,%c,%c",&a,&b,&c) 这样的话 输入的时候一定要用逗号隔开的,用空格隔开输入会出错的
至于
scanf("%c %c %c",&a,&b,&c)中间有没空格都一样的 输入的时候都要用空格或,隔开的
第4个回答  2008-11-24
是的,因为scanf是输入流,对你一切的输入都有响应,所以输入一个空格和不输入空格是不一样的。
相似回答