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

      这次笔记记录到此

  • 相关阅读:
    git 的常用命令(未完待补充)
    Mysql占用内存过高参数优化
    mysql安全基线设置
    redis安全基线设置
    centos7安全基线设置
    检查shell脚本
    redis安装和配置
    TIME_WAIT状态全是3306解决办法
    PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted 错误
    tcp的三次握手和四次挥手(二)
  • 原文地址:https://www.cnblogs.com/wangzhiyu811/p/2102439.html
Copyright © 2011-2022 走看看