精武英雄的个人空间 http://blog.eetop.cn/wenguozhang [收藏] [复制] [分享] [RSS]

日志

标准I/O编程

已有 444 次阅读2015-4-26 10:12 |个人分类:学习笔记

  

概述:

标准I/O指的是ANSIC中定义的用于I/O操作的一系列函数。只要操作系统中安装了C库,标准I/O函数就可以直接调用。注意,标准I/O函数使用时在用户空间创建缓冲区,读写时先操作缓冲区。

标准I/O的核心对象是流stream。定义:当用标准IO打开一个文件时,就会创建一个FILE结构体描述该文件,我们把这个FILE结构体形象地称为流。标准IO函数都是基于流进行各种操作。

流的缓冲类型:

1、全缓冲:当填满标准IO缓冲区后才进行实际的IO操作。默认方式为全缓冲。

2、行缓冲:输入输出中遇到换行符时执行IO操作。这允许我们一次输出一个字符(用标准IO fputs函数)。

3、无缓冲:不带缓冲,如出错流。

编程:

文件的常见操作

fopen 返回值,成功时返回FILE的指针,失败时返回NULL  

#include<stdio.h>

FILE *fopenconst char*path const char *mode);  modew r a b(二进制)

fclose  成功时返回0,失败时返回EOF

#include<stdio.h>

int fcloseFILE*stream);

perror错误处理

#include<stdio.h>

void perror(const char*s);  //s:在标准错误流上输出的信息。

无返回值

例程:#include<stdio.h>

int mAIn()

{

FILE*fp;//定义指针

if((fp=fopen(1.txt,r))==NULL)   //NULL是系统定义的宏,其值为0

{

perror(fail to fopen);

return -1;

}

fclose(fp);

return 0;

}   //如果文件1.txt不存在,则会输出:fail to fopenno such file or directory

 

 

流的读写:#include<stdio.h>

              int getc(FILE *stream);

  int fgetc(FILE *stream);

  int getchar(void) 等价于getcstdin)。 //   均读取一个字节(符),前2个从指定的流读取,  getchar()从标准输入(键盘)读取

 

#include<stdio.h>

int putc(int c,FILE*stream);

int fputc(int c,FILE*stream);

int putchar(int c);  //输出字符c,输出路径同上

例程:#include<stdio.h>

int main()

{

int c;

while(1)

{

c=fgetc(stdin);

if((c>='0')&&(c<='9'))

fputc(c,stdout);

if(c=='\n')

break;

}fputc('\n',stdout);

return 0;

}

 

 

对于进程,预定了三个流,并且这三个流可以自动的被进程使用,他们是标准输入stdin、标准输出stdout和标准出错stderr

格式化输出

执行格式化输出处理的是4printf函数。

#include<stdio.h>

int printf()将格式化数据写到标准输出

int fprintf()写至指定的流

int sprintf()将格式化的字符送入数组buf中,在该数组的尾端自动加入一个null字节

                            201542317:04:26

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐上一条 /4 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-1-20 18:29 , Processed in 0.024318 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部