第九节 标准输入输出

转载 2015年07月08日 17:17:17


   标准输入输出的基本操作,包括文件的打开与关闭,缓冲区的操作
   非格式化输入输出,包括单个字节、字符串以及数据块的输入输出
   格式化输入输出
   
   
 1.标准输入输出的基本操作
   标准输入文件(stdin):一般为键盘
   标准输出文件(stout):一般为显示器
   标准错误输出文件(stderr):一般为显示器
   
   1.文件的打开
   操作文件之前要打开文件,打开文件主要是在系统中分配一些资源用于保存该文件的状态信息,并获取文件的指针,
   打开文件的函数为fopen
   
   2.文件的关闭
   fclose函数
   
   3.缓冲区的刷新
   刷新操作是指将缓冲区中的数据清除
   fflush函数将缓冲区中的数据写入到磁盘文件或输出到用户终端,同时清空缓冲区
   fpurge函数将缓冲区的数据直接清除,包括尚未读取或写入的数据
   
   4.缓冲区属性的设置
   缓冲区的大小和类型等都可以通过函数来设置,缓冲区的类型有下面3种。
   全缓冲:缓冲区被填满后才执行输入输出操作,将数据写入到磁盘文件或输出到用户终端。
   
   行缓冲:缓冲区中填入换行符时,执行输入输出操作
   
   无缓冲:不对数据进行缓存,标准错误输出stderr一般就是无缓冲的,这可以使错误信息尽快地显示出来。

   打开文件后,用户可以使用下面的函数来设定自己的文件缓冲区,而不使用fopen函数打开文件设定的默认缓冲区。
   定义:
    int setvbuf(FILE * stream,char * buf,int mode,size_t size);
   说明:
    在打开文件流后, 读取内容之前, 调用setvbuf()可以用来设置文件流的缓冲区。参数stream为指定的文件流,
     参数buf指向自定的缓冲区起始地址, 参数size为缓冲区大小,
     参数mode有下列几种
    _IONBF 无缓冲IO
    _IOLBF 以换行为依据的无缓冲IO
    _IOFBF 完全无缓冲IO。如果参数buf为NULL指针, 则为无缓冲IO。

   除上面函数外,还有如下3个函数:
   setbuf
   setbuffer
   setlinebuf
   
   
 2.非格式化输入输出
   非格式化输入输出包括单个字节输入输出、字符串输入输出以及数据块输入输出
   
   1.单个字节输入输出
     从文件读一个字节
     fgetc
     getchar函数从标准输入读一个字节,等价于fgetc(stdin)
     向指定文件写一个字节
     fputc
     putchar函数可以向标准输出写一个字节,等价于fputc(c, stdout)
   2.字符串输入输出
     fgets函数可以从指定的文件中读一行字符到缓冲区中,
     
     fputs函数可以向指定的文件写入一个字符串
     
     feof函数来测试读写位置是否到达文件末尾
     
   3.数据块输入输出
     对文件进行输入输出操作,也可以以数据块为单位进行,所谓数据块,是指一串固定长度的字节,从文件中
     读取数据块用fread函数
     
     向文件中写入数据块使用fwrite函数
     
     
  3.格式化输入输出
     格式化输出fprintf
     printf等价于fprintf(stdout,...)
     
     格式化输入函数为fscanf
     scanf等价于fscanf(stdin,...)
     
     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第九节 linux标准输入输出操作

标准输入输出的基本操作,包括文件的打开与关闭,缓冲区的操作    非格式化输入输出,包括单个字节、字符串以及数据块的输入输出    格式化输入输出          1.标准输入输出的基本操...
  • u012761633
  • u012761633
  • 2015年07月06日 11:08
  • 162

C/C++ 标准输入输出的坑

 最近公司项目需要分析日志,我拿到的日志经过了一次处理,以Json格式存储,日志量每小时大约1G,行数大约60万,此为背景。 其实对于这类问题,通常的解法是写个脚本去跑。对于我来说,主业是C/...
  • yunxiaopiao
  • yunxiaopiao
  • 2015年05月26日 17:38
  • 884

linux标准输入输出

一 简介 标准输入输出的准确定义是什么?没找到一个说得比较满意的答案,这里给出自己的理解:所谓的标准输入输出是指程序默认的输入输出,很多时候应用程序io操作并没有指定操作的文件句柄,比如printf,...
  • whuzm08
  • whuzm08
  • 2017年06月28日 16:19
  • 295

输入输出原理与C语言标准输入输出函数

#include Sleep(1);沉睡一秒       输入输出原理: 输入:当键盘按下按键之后程序读取到数据        流程 1、键盘缓冲区:键盘的内部有一块微处理器,它控制...
  • pangyaojian
  • pangyaojian
  • 2014年07月02日 16:14
  • 1672

C++的输入和输出与标准输出流

一、 C++ 输入输出的含义    以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上。从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件。程...
  • yas12345678
  • yas12345678
  • 2016年09月20日 11:23
  • 2863

Linux-C标准输入输出

#include #include int main(){ int n; char buf[1024]; ...
  • M_N_N
  • M_N_N
  • 2017年11月24日 21:03
  • 75

C/C++标准输入输出与文件输入输出

C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数: 标准输入输出: 1. scanf, printf int scanf(const char *format, a...
  • heixiaolong7
  • heixiaolong7
  • 2016年03月11日 15:02
  • 3503

java的标准输入输出(一)

1.回顾C++的标准输入和输出 在C++中,标准的输入输出是使用iostream库,cin为标准输入,cout为标准输出,cerr为输出警告和报告错误消息。clog是用来输出程序运行的一般信息。 ...
  • wf131410000
  • wf131410000
  • 2015年11月23日 15:44
  • 4786

标准输入输出和重定向输入输出

Java的标准输入/输出分别通过System.in和System.out来代表,在默认的情况下分别代表键盘和显示器,当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过Sys...
  • miao_dingxiao
  • miao_dingxiao
  • 2016年07月16日 09:50
  • 491

C/C++标准输入输出与文件输入输出

C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数: 标准输入输出: 1. scanf, printf int scanf(const char *format, a...
  • xiao_0429
  • xiao_0429
  • 2013年09月29日 17:41
  • 15276
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第九节 标准输入输出
举报原因:
原因补充:

(最多只允许输入30个字)