getchar()等效于scanf("%c")和putchar()等效于printf("%c")?

Gau*_*mar 7 c scanf putchar getchar

a = getchar()相当于scanf("%c",&a);

putchar(a)等同于printf("%c",a);其中a是一个char变量?

Jar*_*Par 7

一般来说是的,他们是一样的.

但他们并没有采取一些挑剔的方式.getchar键入的函数返回int而不是char.这样做getchar既可以是所有可能的char值,也可以是错误代码.

因此,尽管以下内容在大多数编译器中编译都很愉快,但实质上是截断了错误消息

char c = getchar();
Run Code Online (Sandbox Code Playgroud)

scanf但是,该函数允许您char直接使用类型并将错误代码分离为返回值.