C语言里面为什么设置getchar putchar, 不是有printf scanf吗

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:33:30
下面举一个例子:要求输入”girl”并输出.
#include<stdio.h>
main()
{
char a,b,c,d;
a=getchar();b=getchar();c=getchar();d=getchar;
putchar(a);putchar(b);putchar(c);putchar(d);
}
那我直接这样不行?
main()
(
char a
printf("%c",scanf("%c",&a))
这样不行吗?

girl是string型的
直接写是
main()
{
string a;
scanf("%s",&a);
printf("%s\n",a);
}

getchar和putchar主要对单个字符起作用,尤其是像空格\回车符\ESC符等特殊字符的使用上getchar和putchar才能显示出优势.

这样当然不行啦,scanf("%c",&a)返回的值是个一状态值,是判断你输入是否正确的值,而不是你输入的值,你输入的值是赋值到变量a,所以应该是:
scanf("%c",&a);
printf("%c",a);

当然可以,不过好像应该是这样:
main()
{
char a;
printf("%c",scanf("%c",&a));
}