导航

文件

 

 

一、输入输出函数

文件都采用二进制方式记录数字。

如果文件里所有的二进制 数据都有对应的字符, 就把这种文件叫做文本文件。

除了文本文件以外的文件都叫做二进制文件。(二进制文件类似于数组)

文本文件和二进制文件分别采用不同的方式进行操作。文本文件也可以当作二进制文件进行操作。

 

文件操作的基本步骤:

1.打开文件 fopen

2.操作文件 fread fwrite

3.关闭文件 fclose

 

以下为文件操作演示:                                                                     

  3 #include<stdio.h>

  4 int main(){

  5 FILE * p_file=fopen("a.txt","w");//(文件路径,操作方式)

  6          //直接用文件名代替路径,是在当前文件所在目录下找这个文件名。

  7         //返回值是一个结构体的地址,记录在(文件)指针里。

  8         //文件指针代表一个打开的文件。

  9         //如果打开失败,就返回一个空地址

 10         

 11 if(p_file){

 12 fclose(p_file);

 13 p_file=NULL;

 14 //把返回值当作一个布尔值来写一个分支

 15 //操作文件

 16 //关闭文件后,文件指针编程也指针,我们把他恢复成空指针

 17 }

 18 

 19 

 20 return 0;

 21 }

 22

第二种分支写法:

  3 #include<stdio.h>

  4 int main(){

  5 FILE * p_file=fopen("b.txt","w");//(文件路径,操作方式)

  6          //直接用文件名代替路径,是在当前文件所在目录下找这个文件名。

  7         //返回值是一个结构体的地址,记录在(文件)指针里。

  8         //文件指针代表一个打开的文件。

  9         //如果打开失败,就返回一个空地址

 10 

 11 if(!p_file){

 12 return 0;

 13 }

 14 

 15 fclose(p_file);

 16 p_file=NULL;

 17 

 18 

 19 return 0;

 20 }

 21

 

程序里只能用文件指针代表文件,不能用路径代表文件。

 

fread 和 fwrite都是以二进制方式操作文件的。这两个函数都需要四个参数。  

1.内存里第一个存储区的_地址

2.内存里单个存储区的_大小

3.希望 操作的的存储_个数

4. 文件指针      

返回值:表示 实际 操作的存储区个数。

 

fread示例

  2 #include<stdio.h>

  3 

  4 int main(){

  5 int arr[]={1,2,3,4,5},size=0;

  6 FILE * p_file=fopen("a.bin","wb");

  7 if(p_file){

  8 size=fwrite(arr,sizeof(int),5,p_file);

  9 printf("写入%d个整数类型的存储区",size);

 10 fclose(p_file);

 11 p_file=NULL;  

 12 }

 13 return 0;

 14 }

 

fwrite 示例

  2 #include<stdio.h>

  3 

  4 int main(){

  5 int arr[5]={0},size=0,num=0;

  6 FILE * p_file=fopen("a.bin","rb");

  7 

  8 if(p_file){

  9 size=fread(arr,sizeof(int),5,p_file);

 10 printf("一共获得%d个整数\n",size);

 11 for(num=0;num<=4;num++){

 12         printf("%d",arr[num]);

 13 }

 14 printf("\n");

 15 fclose(p_file);

 16 p_file=NULL;

 17 }

 18 

 19 

 20 return 0;

 21 }

 22 

 

 

文本文件操作指南

要把东西存到文本文件中,需要先把数据转为字符或者字符串

  2 #include<stdio.h>

  3 #include<string.h>

  4 int main(){

  5         int arr[]={1,2,3,4,5},num=0;

  6         char buf[10]={0};

  7         FILE * p_file=fopen("a.txt","wb");

  8                 //虽然写的是文本文件,但是还是用二进制的方式来写的。

  9         if(p_file){

 10         for(num=0;num<=4;num++){

 11                 sprintf(buf,"%d",arr[num]);

 12                 fwrite(buf,sizeof(char),strlen(buf),p_file); //写到文件中

 13         //得到一个字符串,并把它放到字符数组里。

 14         }

 15         fclose(p_file);

 16         p_file=NULL;

 17         }

 18         return 0;

 19 }

 20

 

字符串放在内存里,文件放在硬盘里。

1.文件流

流:输入输出

文件流的操作要用 文件指针 FILE *

标准流是特殊的文件指针 stdin stdout  stderr

fopen();fclose();

fscanf();fprintf();

fread();fwrite(); 

ftell ( ) ; fseek();

2.字符的输入输出

3.字符串的输入输出

sscanf() ; ssprintf();

 

posted on 2018-06-27 00:20  爱我鸭  阅读(154)  评论(0)    收藏  举报