Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
getchar()是否等同于scanf(";%c";),putchar()是否等同于printf(";%c";)?_C_Scanf_Getchar_Putchar - Fatal编程技术网

getchar()是否等同于scanf(";%c";),putchar()是否等同于printf(";%c";)?

getchar()是否等同于scanf(";%c";),putchar()是否等同于printf(";%c";)?,c,scanf,getchar,putchar,C,Scanf,Getchar,Putchar,a=getchar()等同于scanf(“%c”,&a) 是putchar(a)相当于printf(“%c”,a)其中a是char变量?一般来说是的,它们是相同的 但他们并没有在一些方面吹毛求疵。键入函数getchar返回int,而不是char。这样做是为了getchar既可以显示所有可能的char值,也可以显示额外的错误代码 因此,当以下代码在大多数编译器中顺利编译时,您实际上是在截断错误消息 char c = getchar(); 不过,函数scanf允许您直接使用char类型,并将错误代

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

另请参见非错误消息(如复数形式),“仅”EOF。但除此之外,这是正确的。还应该说getchar()比scanf()效率更高,因为库不必解析格式字符串(链接器也不必链接scanf()这一大块代码)。