为了账号安全,请及时绑定邮箱和手机立即绑定

int和char在getchar/fgetc和putchar/fputc中的区别?

int和char在getchar/fgetc和putchar/fputc中的区别?

C C++
温温酱 2019-06-13 14:54:21
int和char在getchar/fgetc和putchar/fputc中的区别?我正试着自己学习C,我有点搞不懂getchar和putchar:1#include <stdio.h>int main(void){     char c;     printf("Enter characters : ");     while((c = getchar()) != EOF){       putchar(c);     }     return 0;}2#include <stdio.h>int main(void){     int c;     printf("Enter characters : ");     while((c = getchar()) != EOF){       putchar(c);     }     return 0;}C库函数int putchar(int c)将参数char指定的字符(无符号字符)写入stdout。C库函数int getchar(void)从stdin获取字符(无符号字符)。这相当于使用stdin作为参数的getc。这是否意味着putchar()兼收并蓄int和char或者他们中的任何一个getchar()我们应该用int或char?
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

总用int保存字符getchar()EOF常数是int类型。如果你用char然后比较EOF是不对的。

你可以安全通过charputchar()虽然它将被提升为int自动的。

*技术上使用char在大多数情况下都能工作,但这样就不能有0xFF字符,因为它们将被解释为EOF由于类型转换。涵盖所有案件使用int..正如@Ilja所说-int用于表示所有256个可能的字符值。这个EOF,它总共是257个可能的值,不能存储在char类型。


查看完整回答
反对 回复 2019-06-13
  • 2 回答
  • 0 关注
  • 811 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信