zoukankan      html  css  js  c++  java
  • 读《C程序设计语言》笔记1

    字符输入/输出(文件复制):

      标准库提供的输入/输出模型非常简单。无论文本从何处输入,输出到何处,其输入/输出都是按照字符流的方式处理。

      标准库提供了一次读/写一个字符的函数,其中最简单的是getchar和putchar两个。每次调用是,getchar函数从文本流中读入下一个输入字符,并将其作为结果值返回。这种字符通常是通过键盘输入的。

      一个例子:

    /***************
    description:
    字符输入/输出:文件复制
    **************
    */
    #include
    <stdio.h>

    void main()
    {
    int c;
    while((c=getchar())!=EOF)
    putchar(c);
    }

      字符在键盘、屏幕或其他任何地方无论以什么形式表现,它在机器内部都是以位模式存储的。char类型专门用于存储这种字符型数据,当然任何整型(int)也可以用于存储字符型数据。至于为什么程序中变量c定义为int型,我们接下来慢慢讲。

      如何区分文件中有效数据与输入结束符的,C语言采取的解决办法是:在没有输入时,getchar函数将返回一个特殊值,这个特殊值与任何实际字符都不同。这个值成为EOF(end of file)。我们在声明变量c的时候,必须让它大到足以存放getchar函数返回的任何值。

      所以这里不把c声明成char类型,是因为它必须足够大,除了能存储任何可能的字符外还要能存储文件结束符EOF。因此,将c声明成int类型。

      EOF定义在头文件<stdio.h>中,是一个整型数。其具体值是什么稍后看,但要知道它与任何char类型的值都不相同。

      

    #include <stdio.h>
    void main()
    {
    int c;
    c
    =EOF;
    printf(
    "%d\n",c);
    system(
    "pause");
    }

      运行结果如下:

      

      于是我们知道EOF的值为-1

      这次笔记记录到此

  • 相关阅读:
    Dart语言概览
    Flutter开发环境配置(MAC版)
    Jetpack系列:Paging组件帮你解决分页加载实现的痛苦
    Jetpack系列:应用内导航的正确使用方法
    Jetpack系列:LiveData入门级使用方法
    在Android平台使用SNPE应链接libc++库
    Android binder流程简图
    使用Visual Studio Code进行远程开发
    用clock()函数计时的坑
    OpenCV Mat格式存储YUV图像
  • 原文地址:https://www.cnblogs.com/wangzhiyu811/p/2102439.html
Copyright © 2011-2022 走看看