a = getchar()
相当于scanf("%c",&a);
?_
putchar(a)
相当于printf("%c",a);
哪里是a
一个char
变量?
一般来说,是的,它们是相同的。
但它们并不是以一些挑剔的方式。该函数getchar
的类型是 returnint
而不是char
。这样做是为了getchar
同时获得所有可能的char
值和额外的错误代码。
因此,虽然以下内容可以在大多数编译器中顺利编译,但您实际上是在截断一条错误消息
char c = getchar();
scanf
不过,该函数允许您char
直接使用类型并将错误代码分离到返回值中。
他们在这里做同样的事情。但是,如果您知道您只是在做字符,那么getchar
效率putchar
会更高,因为printf
andscanf
变体每次都必须解析字符串以确定如何处理您的请求。另外,它们可能在较低级别的库中被调用,这意味着如果其他地方不需要它们, 您可能不必链接printf
/ 。scanf