• C和指针 第15章 输入/输出函数 15.5 流I/O总览


    15.5 流I/O总览
        轻松地在C程序中执行于文件相关的I/O任务。下面关于文件I/O的一般概况。
        1.程序为必须同时处于活动状态的每个文件声明一个指针变量,其类型为FILE*。这个指针指向FILE结构,当它处于活动状态时由流使用。
        2.流通过调用fopen函数打开。为了打开一个流,必须指定需要访问的文件或设备以及它们的访问方式(例如,读、写或者既读又写)。Fopen向操作系统验证文件或设备确实存在(在有些操作系统中,还会验证是否允许执行所指定的访问方式)并初始化FILE结构。
        3.根据需要对该文件进行读取或写入。
        4.调用fclose函数关闭流。关闭一个流可以防止与它相关联的文件被再次访问,保证任何存储于缓冲区的数据被正确地写到文件中,并且释放FILE结构,以使它可以用于另外的文件。
        标准流的I/O更为简单,因为它们并不需要打开或关闭。
        I/O函数以3种基本的形式处理数据:单个字符、文本行或二进制数据。对于每种形式,都有一组特定的函数对它们进行处理。表15.1列出了用于每种I/O形式的函数或函数家族。它指向一组函数中的每个都执行相同的基本任务,只是方式稍有不同。这些函数的区别在于获得输入的来源或输出写入的地方不同。这些变体用于执行下面的任务。
                        执行字符、文本行和二进制I/O的函数
         表15.1                        函数名或函数家族名 
    数据类型        输入          输出             描述
    字符              getchar     putchar         读取(写入)单个字符 
    文本行          gets          puts               文本行末格式化的输入(输出) 
                         scanf        printf              格式化的输入(输出) 
    二进制数据   fread         fwrite             读取(写入)二进制数据
        1.只用于stdin或stdout。 
        2.随作为参数的流使用。 
        3.使用内存中的字符串而不是流。
        需要一个流参数的函数将接受stdin或stdout作为它的参数。有些函数家族并不具备用于字符串的函数变体,因为使用其他语句或函数来实现相同的效果更为容易。表15.2列出了每个家族的函数。
        表15.2                                 输入/输出函数家族
    家族名            目的          可用于所有的流        只用于stdin和stdout            内存中的字符串
    getchar         字符输入     fgetc、getc            getchar                                (1)
    putchar         字符输出     fputc、putc            putchar                                (1)
    gets              文本行输入  fgets                      gets                                      (2)
    puts              文本行输出  fputs                      puts                                      (2)
    scanf            格式化输入  fscanf                    scanf                                     sscanf
    printf            格式化输出   fprintf                    printf                                      sprintf
    (1)对指针使用下标或间接访问操作从内存获得一个字符(或向内存写入一个字符)。
    (2)使用strcpy函数从内存读取文本行(或向内存写入文本行)。 
     

  • 相关阅读:
    【概率论】第八章 假设检验
    IO DAY2
    在顺序表中使用顺序查找法查找某个关键字
    计算机毕业设计(附源码)python智能交通信息管理平台
    RS485收发自动切换电路 [原创www.cnblogs.com/helesheng]
    python合集(显示图像,黑白化、二值化,处理excel、画有向图无向图赋权图网络图)
    (附源码)php在线考试系统 毕业设计 032028
    1.Linux环境
    hive参数优化。
    uniapp的公共样式
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/125619043