getchar()等效于scanf(“%c”)和putchar()等效于printf(“%c”)?
a = getchar()
等效于scanf("%c",&a);
?
putchar(a)
等同于printf("%c",a);
其中a
是char
变量?
一般来说是的,他们是一样的。
但他们并没有采取一些挑剔的方式。 函数getchar
的类型是返回int
而不是char
。 这样做是为了使getchar
既可以包含所有可能的char
值,也可以包含错误代码。
因此,尽管以下内容在大多数编译器中编译都很愉快,但实质上是截断了错误消息
char c = getchar();
但是,函数scanf
允许您直接使用char
类型并将错误代码分离为返回值。
他们在这里做同样的事情。 但是,如果你知道你只是在做字符,那么getchar
和putchar
会更有效率,因为printf
和scanf
变体必须每次解析字符串以确定如何处理你的请求。 另外,它们可能在较低级别的库中调用,这意味着如果在其他地方不需要它们,则可能不必连接printf
/ scanf
。