• C学习笔记(八)字符输入输出和输入确认


    缓冲区

    缓冲区分为两类:完全缓冲(fully buffered)I/O和行缓冲(line-buffered)I/O。完全缓冲在缓冲区满时被清空(内容被发送至目的地)。这种类型常出现在文件输入中。缓冲区的大小取决于系统。行缓冲在遇到换行字符时被清空。键盘输入是标准的行缓冲。

    文件、流和键盘输入

    c程序处理一个流而不是一个文件。键盘输入由一个被称为stdin的流表示,而到屏幕(或电子传真机、或其他输出设备)上的输出由一个被称为stdout的流表示。

    文件结尾

    检测文件结尾的一种方法是在文件中放置一个特殊字符来标志结尾。例如CP/M、IBM/DOC和MS/DOC的文本文件中曾使用一种方法。使用内嵌的Ctrl+Z字符来标识文件结尾。

    第二种方法是让操作系统存储文件大小的信息。如果一个文件有3000字节,而且程序已经读取了3000字节,则改程序就到达了文件结尾。

    对于这两种方法,c的处理方法是让getchar()在到达文件结尾时返回一个特殊值,此值名称为EOF(End Of File)。

    重定向和文件

    令程序和文件一同工作有两种方式。一种方式是明确的使用打开文件、关闭文件、读文件、写文件等专门函数。

    第二种方式是使用一个设计用于与键盘和屏幕共同工作的程序,但是使用不同通道重定向输入和输出,例如输入到文件和从文件输出。

    输入重定向

    假如你编译了echo_eof.c,要运行程序,键入该程序的名字。

    echo_ eof

    假设你要对一个名为words的文本文件使用该程序。

    echo_ eof<words

    <符号是Unix、Linux重定向运算符。该运算把words文件的内容引导至echo_eof程序。

    输出重定向

    假如你想echo_eof将你的键盘输入发送给一个名为mywords的文件。

    echo_ eof>mywords

    >会建立一个新文件,然后将echo_eof的输出重定向到该文件。

    组合重定向

    假如你希望制作mywords的一个副本,并将其命名为savewords,只需发出命令:

    echo_ eof<mywords>savewords

    下面的语句同样可以实现,重定向运算符的顺序无关紧要:

    echo_ eof>savewords<mywords
  • 相关阅读:
    opencv(8)直方图操作
    opencv(9)直方图均衡化,对比,匹配
    最近没有更新日记
    dsp 链接命令文件的写法
    sqlserver 的数据库备份 还原安全操作 备忘录
    主板的各种抱错声音
    hibernate 的自动生成工具
    如何学习,如何提出问题,如何解决问题,如何脑筋急转弯
    framework 的 错误提示?
    hack 入侵 142 主机的过程
  • 原文地址:https://www.cnblogs.com/hahazexia/p/3342182.html
Copyright © 2020-2023  润新知