C语言中 把输入作为字符流读取,直到遇到EOF 该怎么编程?

Python021

C语言中 把输入作为字符流读取,直到遇到EOF 该怎么编程?,第1张

输入EOF的方法:先换新行(按回车),然后按ctrl+z,然后再回车。

#include stdio.h

int main()

{

    char ch

    int m, n

    m = n = 0

    printf("please input character:\n")

    while ((ch = getchar()) != EOF)

    {

        if(('A' <= ch) && (ch <= 'Z'))

            m++

        if(('a' <= ch) && (ch <= 'z'))

            n++

    }

    printf("大写字母个数:%d   小写字母个数:%d\n", m, n)

 

    return 0

}

Ctrl+Z然后回车是Windows控制台输入EOF的方法。(*nix则是Ctrl+D。)

EOF(end of file)是文件结束符,表示流的终止标识,在文件处理中常用。

EOF在C语言标准库中定义为一个宏,替换为整数字面量-1(ASCII是0~127,这个值不包含于其中;EOF为int类型,为了返回这个值,很多库函数的返回值都是int而不是char;转化为char后可能为-1和255,具体是哪个要看编译器中char类型是否当作有符号数)。包含<stdio.h>后可以用(c=getchar())!=EOF,直接判断,这里c是字符。如果c是标志变量,那么可以用c=getchar()!=EOF。

----

LS胡扯,回车符(CR, carriage return)是'\r',ASCII是13。

====

[原创回答团]