猿问

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

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

我正试着自己学习C,我有点搞不懂getcharputchar:

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()兼收并蓄intchar或者他们中的任何一个getchar()我们应该用intchar?


温温酱
浏览 812回答 2
2回答

ITMISS

总用int保存字符getchar()如EOF常数是int类型。如果你用char然后比较EOF是不对的。你可以安全通过char到putchar()虽然它将被提升为int自动的。注*技术上使用char在大多数情况下都能工作,但这样就不能有0xFF字符,因为它们将被解释为EOF由于类型转换。涵盖所有案件总使用int..正如@Ilja所说-int用于表示所有256个可能的字符值。和这个EOF,它总共是257个可能的值,不能存储在char类型。
随时随地看视频慕课网APP
我要回答