C语言输入输出函数的简要介绍

     

/*************************************************************************

> File Name: liu.c

> Author: liujinlong

> Mail: ljl7ed@sina.com 

> Created Time: 2014年03月13日 星期四 14时48分31秒

 ************************************************************************/

                                                                           C语言输入/输出函数总结

                                                                                                                                  2014年3月13日于图书馆

错误报告

   标准库函数在一个外部整型变量errno(在errno.h中定义)中保存错误代码之后把这个信息传递给用户程序,提示操作失败的准确原因。

  perror函数简化向用户报告这些错误的过程。他的原型定义于stdio.h,如下所示: 

void perror(char const *message);

  如果message不是NULL并且指向一个非空的字符串,perror函数就打印这个字符串,后面跟一个分号和一个空格,然后打印出一条用于解释error当前错误代码的信息。

打开流

  fopen函数

  
     FILE *fopen(char const *name,char const *mode)

  如果fopen函数执行成功,它返回一个指向FILE结构的指针,该结构代表这个新创建的流。如果函数执行失败,它就返回一个NULL指针,errno会提示问题的性质。

关闭流

  fclose函数

    int fclose(FILE *f);

  对于输入流,fclose函数在关闭之前刷新缓冲区。如果它执行成功,fclose返回零值,否则返回EOF。

字符I/O

  getchar函数家族

    
    int fgetc(FILE *stream);
    int getc(FILE *stream);
    int getchar(void);              //getchar始终从标准输入读取

    这些函数用于读取字符,但他们都返回一个int型值,而不是char型值。(主要是为了解决EOF,EOF被定义为整型,这样可以使其不与文件中的字符型冲突)

  putchar函数家族

    
    int fputc(int character,FILE *stream);
    int putc(int character,FILE *stream);
    int putchar(int character);     /*在打印前,函数把这个整型参数裁剪为一个无符号字符型值。

在文件内部有一个位置指针。用来指向文件的当前读写字节。使用 fgetc 函数后,该位置指针将向后移动一个字节。 因此可连续多次使用 fgetc 函数,读取多个字符。应注意文件指针和文件内部的位置指针不是一回事。文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。文件内部的位置指针用以指示文件内部的当前读写位置,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。

未格式化的行I/O

 
       char *fgets(char *buffer,int buffer_size,FILE *stream) 
/*fgets从指定的stream读取字符并把他们复制到buffer中。当它读取一个换行符并储存到缓冲区之后就不在读取。fgets返回它的第一个参数,用于检查是否到文件尾。其中的buffer_size是一个正整数。表示从文件中读出的字符串不超过buffer_size - 1个字符。在读入的最后一个字符后加上串结束标志'\0'。*/

    char *gets(char *buffer);
    int fputs(char const *buffer,FILE *stream);            //如果写入时出错,fputs返回常量值EOF,否则它将返回一个非负值。
    int puts(char const *buffer);

格式化的行I/O

scanf函数家族

   
    int fscanf(FILE *stream,char const *format,..);
    int scanf(char const *format,...);                                  //函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
    int sscanf(char const *string,char const *format,...);             //sscanf从第一个参数所给的字符串中读取字符

printf函数家族

    
    int fprintf(FILE *stream, char const *format,... );
    int printf(char const *format,...);
    int sprintf(char *buffer,char const *format,...);	         //把它的结果作为一个NUL结尾的字符串存储到指定的buffer缓冲区而不是写入到流

三个函数的返回值都是实际打印或存储的字符数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值