C语言文件的输入输出知识点

原创 2015年07月11日 09:25:45

文件类型指针

定义文件指针变量的一般形式为:

   FILE *文件结构指针变量名

例如:FILE *fp;

注意:只有通过文件指针,才能调用相应的文件。

文件的打开(fopen函数)

常用以下方式打开文件:

   FILE *fp;

   if ((fp=fopen("file1", "r")) ==NULL )

   {printf("cannot open this file\n");

    exit(0);

   }

文件的关闭(fclose函数)

例如:

fclose(fp);

fclose函数也带回一个返回值,当顺利关闭文件时,返回0,否则返回EOF(-1)

文件的读写

1fputc函数和fgetc函数(putc函数和getc函数)

(1)fputc函数

把字符写入到磁盘文件,一般的调用方式为:

fputc(ch,fp)

(2)fgetc()函数

从指定文件读入一个字符。fgetc函数的调用形式为:

ch=fgetc(fp);

从文本文件中顺序读入文件内容,并在屏幕上显示出来,可以用:

 ch = fgetc(fp);

 while(ch != EOF)

 {putchar(ch);

  ch = fgetc(fp);}

从二进制文件中顺序读入文件内容,可以用:

 while(!feof(fp))
   {ch = fgetc(fp);
    ....
    } 

fread函数和fwrite函数

fread函数和fwrite函数用来读写一个数据块。它们的一般调用方式为:

fread(buffer,size,count,fp);

fwrite(buffer,size,count,fp);

其中:

buffer:是一个指针。对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。

size:要读写的字节数。

count:要进行读写多少个size字节的数据项。

例:如果有如下的结构体类型:

  struct student_type{char name[10];

   int num;

   int age;

   char addr[30];

  }stu[40];

 

    for(i=0; i<40; i++) /* 每次写一个学生 */

  fwrite(&stu[i], sizeof(struct student_type), 1, fp);

  //或者只写一次

  fwrite(stu, sizeof(struct student_type), 40, fp);

fprintf函数和fscanf函数

fprintf(文件指针,格式字符串,输出列表);

fscanf (文件指针,格式字符串,输入列表);

例如:

fprintf(fp,"%d,%6.2f",i,t);

它的作用是将整型变量i和实型变量t的值按%d%6.2f的格式输出到fp所指向的文件中。如果i=3,t=4.5,则输出到磁盘文件上的是以下字符串:

34.50

同样,用fscanf函数可以从磁盘文件上读入ASCII字符:

fscanf(fp,"%d,%f",&i,&t);

磁盘文件上如果有以下字符:34.5  则将磁盘文件的数据3送给变量i4.5送给变量t

最好不用fprintffscanf函数,而用freadfwrite函数。

其他读写函数

1putwgetw函数

putwgetw函数用来对磁盘文件读写一个字(整数)。例如:

putw(10,fp);    /* 整数10写入文件fp */

i=getw(fp);     /* 从文件fp读一个整数给变量i */

2fgetsfputs函数

fgets函数的作用是从指定文件读入一个字符串。例如:

fgets(str, n,fp)     /* 从文件fp读n-1个字节到str,str最后一个字节加'\0'*/

fputs函数的作用是向指定的文件输出一个字符串。例如:

fputs(str,fp)        /* 把字符串str写入fp */

文件的定位

1rewind函数

一般的使用形式为:

rewind(fp);
作用:使文件fp的位置指针指向文件开始。

2fseek函数和随机读写

fssek (文件类型指针,位移量,起始点);

功能:把文件的位置指针从起始点开始,移动指定位移量的字节数。成功返回0,失败返回非0

3ftell函数

例如:

i=ftell(fp);

if(i==-1L) printf("error\n");

出错的检测

标准提供一些函数用来检查输入输出函数调用中的错误。

1ferror函数

在文件操作时,如果出错,除了操作函数的返回值有所反应外(如fopen()函数返回NULL),还可以用ferror函数获得是否出错。它的一般调用形式为:

ferror(fp)

功能:若上一次文件操作未出错,返回0;否则返回非0

2clearerr函数

clearerr函数的作用是使文件错误标志和文件结束标志置为0。 文件操作出现错误后,ferror(fp)函数值为一个非0值,该错误信息将一直保留在系统中,在调用clearerr(fp)函数后,ferror(fp)函数值变成0

 

文件输入输出小结

常用的缓冲文件系统函数

分类 

函数名 

功能 

打开文件 

fopen()

打开文件。

关闭文件 

fclose() 

关闭文件。

文件定位 

fseek()

rewind()

ftell()

改变文件位置指针位置

使文件位置指针重新置于文件开头

返回文件位置指针的当前值

文件读写 

fgetc(),getc()

fputc(),putc()

fgets()

fputs()

getw()

putw()

fread()

fwrite()

fscanf()

fprintf()

从指定文件取得一个字符。

把字符输出到指定文件。

从指定文件读取字符串。

把字符串输出到指定文件。

从指定文件读取一个字(int型)。

把一个字(int型)输出到指定文件。

从指定文件中读取数据项。

把数据项写到指定文件。

从指定文件按格式输入数据。

按指定格式将数据写到指定文件中。

文件状态 

feof()

ferror()

clearerr()

若到文件末尾,函数值为(非0)。

若对文件操作出错,函数值为(非0)。

使ferrorfeof函数值置零。

版权声明:转载请注明出处

c语言的几个重要知识点

本文转自:http://www.cnblogs.com/cherri/archive/2010/12/04/1896183.html 目录: 1. 内存结构 2 .指针 3. ...
  • zhoucoolqi
  • zhoucoolqi
  • 2012年08月27日 15:53
  • 6598

Linux环境C语言编译与头文件等知识点小结

一、C语言的有关文件类型:虽然,在Linux下“一切皆文件”,并且文件类型这个概念不是那么重要,一个“.c”文件可以用gcc编译,一个“.abcdef”文件照样可以用gcc编译。但是有类型的文件毕竟比...
  • Apollon_krj
  • Apollon_krj
  • 2016年12月04日 17:34
  • 798

C语言文件输入数组输出小代码

要求:从.txt文件读入数据,文件中数据有100行4列。输出要求各列输出一个数组,一列一个数组。#include #include#define N 4 //4列 #define L 100 /...
  • xiaodoubao124
  • xiaodoubao124
  • 2015年08月10日 15:30
  • 608

C语言学习笔记——格式化输入输出

输入可以有三种方式:scanf(),getchar(),gets(),它们有哪些区别呢? 1.  scanf() 功 能: 执行格式化输入 用 法: int scanf(char *forma...
  • xinianbuxiu
  • xinianbuxiu
  • 2016年07月14日 18:16
  • 726

C语言重要知识点总结(一)

C语言重要知识点总结(一)最近重新看了下C语言,发现先前学习的时候很多的重点都被忽略了,现在回头看发现了很多以前没有注意的东西,所以写博客记录下,方便以后可以参考查询。 变量的存储类别C语言中变量的存...
  • c1s2p3
  • c1s2p3
  • 2015年10月15日 20:04
  • 950

c语言输入输出优化

当输入输出数据量很大时,应尽量用scanf和printf函数。如果时间效率还不够高,应逐字符输入输出,就像下面的readint和writeint函数。#include //为了使用isdigit宏 i...
  • luckyrass
  • luckyrass
  • 2015年12月08日 20:38
  • 1498

C语言数据输入与输出

C语言数据输入与输出
  • ITTechnologyHome
  • ITTechnologyHome
  • 2016年06月02日 11:06
  • 10409

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

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

C语言重定向输入输出的方法

在C标准库头文件中有一个freopen的函数,用于重定向输入输出流。该函数可以在不改变代码原貌的情况下改变输入输出环境,但使用时应当保证流是可靠的。函数原型是   FILE *freopen(con...
  • yy_menghuanjie
  • yy_menghuanjie
  • 2016年08月03日 14:46
  • 1603

C语言基础知识梳理总结

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!...
  • g984160547
  • g984160547
  • 2017年03月06日 09:54
  • 4190
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言文件的输入输出知识点
举报原因:
原因补充:

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