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语言中文件的输入输出

  • 2012-03-26 20:18
  • 97KB
  • 下载

c语言小知识点 7 __attribute #pragma pack (n)使用及(scatter file)分散加载文件 .sct

知识点15: 使用伪指令#pragma pack (n), C编译器将按照n个字节对齐。 使用伪指令#pragma pack (),取消自定义字节对齐方式 另外,还有如下的一种方式:  __...

计算机组成原理知识点(第五章:输入输出系统)

第五章: 输入输出系统1.输入输出系统的组成由I/O软件和I/O硬件 两部分组成软件的任务: 主要实现用户与主机之间的数据传递的可视化, 还有实现输入输出系统与主机的协调软件(1) I/O指令: 格式...

输入输出流java知识点

1、FileInputStream类 FileInputStream(String name) 使用给定文件名创建一个FileInputStream对象 FileInputStream(File ...

C++ 知识点(二):指针,引用,时间,输入输出,数据结构

C++ 指针每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。什么是指针指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。...
  • Jurbo
  • Jurbo
  • 2016-09-05 21:08
  • 1210

c语言文件输入输出函数详解

C语言文件输入输出函数详解 1. 需要了解的概念 需要理解的知识点包括:数据流、缓冲区、文件类型、文件存取方式 1.1 数据流: 指程序与数据的交互是以流的形式进行的。进行C语言文件的...

c语言文件输入输出函数小结

一个文件就是磁盘上一段命名的存储区。对于linux系统,所有的一切都是文件。一直以来对文件的读写操作总不太熟悉,小结一下。       一般编写c程序时,系统自动为您打开三个文件。这三个文件分别是标准...

C语言文件的输入输出函数

C语言文件的输入输出函数        C语言提供了两类关于文件的函数。一类称做标准文件函数也称缓冲型文件函数, 这是ANSI标准定义的函数; 另一类叫非标准文件函数, 也称非缓冲型文件函数。这类函...

C语言学习--标准输入输出与文件操作

a
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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