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

a = getchar()等效于scanf("%c",&a);

putchar(a)等同于printf("%c",a); 其中achar变量?

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

但他们并没有采取一些挑剔的方式。 函数getchar的类型是返回int而不是char 。 这样做是为了使getchar既可以包含所有可能的char值,也可以包含错误代码。

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

 char c = getchar(); 

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

他们在这里做同样的事情。 但是,如果你知道你只是在做字符,那么getcharputchar会更有效率,因为printfscanf变体必须每次解析字符串以确定如何处理你的请求。 另外,它们可能在较低级别的库中调用,这意味着如果在其他地方不需要它们,则可能不必连接printf / scanf