getchar和putchar

来源:互联网 发布:美股炒股软件 编辑:程序博客网 时间:2024/05/01 05:52

     标准库中有数个函数用来控制一次读写一个字符,其中最简单的就是getchar和putchar这两个函数。getchar函数在被调用时从文本流中读入下一个输入字符并将其作为结果值返回。示例程序如下:

      #include  <stdio.h>

      int main(void)

      {

            int  c;

            c  =  getchar();


            while (c  !=  EOF)  {

                putchar(c);

                c  =  getchar();

            }


            return 0;

      }

    程序调试运行结果如下:

            由调试程序知:当执行c  =  getchar()后,变量c中包含了输入流(此处为23)中的下一个字符,也即是2,2在ASCII码中的值为50,所以可以看到此时c  =  50,然后再循环语句中通过调用putchar函数将字符2打印出来,接着再执行c  =  getchar(),将下一字符3赋给变量c(3在ASCII码中为51,故此时c  =  51),再将字符3打印出来。做完这些之后,我们发现c  =  10,在ASCII码中,10为LF(NL  line  feed,  new  line),也即是换行符代表字符,而且它也是属于输入流的一部分,因此我们对输入流进行字符计数的话会发现此时输入流的字符数为3。

            还有一点说明的是:getchar函数在没有输入时返回一个特殊值,也即上面程序中的EOF(end  of  line 文件结束符,在linux下可通过按键ctrl + d输入EOF),此值不能与任何实际字符相混淆,即其值不在char表示范围内(ASCII码值的范围是0~255,不可能是-1,故EOF通常为-1,但他依系统有所不同,因此我们同时可以看到此程序永远不会停止,因为EOF不在ASCII表示范围内),因此我们将变量c说明成int型。 

0 0
原创粉丝点击