vlambda博客
学习文章列表

【C语言程序设计】对文件的输入和输出

1.文件缓冲区


缓冲文件系统是指系统自动的在内存区为程序中每一个正在使用的文件开辟一个文件缓冲区。从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘中去。


2.文件指针


每一个被使用的文件都在内存中都开辟了相应的文件信息区。用来存放文件的相关信息(如文件的名称、状态以及文件的当前位置等)。这些信息保存在一个结构体变量中,该结构体类型是由系统声明的,取名为FILE。


定义一个文件类型指针:

FILE* fp;


3.打开与关闭文件


a.我们使用fopen函数打开数据文件。

fopen函数的调用方式:

fopen(文件名,使用文件方式);


b.我们使用fclose函数来关闭数据文件。(在对一个文件进行读写操作后,必须对其关闭)

fclose的调用方式:

fclose(文件指针);


示例:

1、我们创建一个hello.txt文件,从键盘录入一段字符串,保存在hello.txt文件中。

2、我们从hello.txt文件中读取前n个字符,并输出在程序中。

int main()

{

char ch[10];

char str1[30];

 

FILE *fp = fopen("hello.txt", "w");

if (fp == NULL)

{

printf("文件创建失败!");

return 0;

}

 

for (int i = 0; i < 10; i++)

{

ch[i] = getchar();

fputc(ch[i],fp);

}

 

fclose(fp);


FILE *fq = fopen("hello.txt", "r");

if (fp == NULL)

{

printf("文件打开失败!");

return 0;

}

printf("%s", fgets(str1, 8, fq));

fclose(fq);

return 0;

}


4.顺序读写文件

对文件的顺序读写函数如下:

【C语言程序设计】对文件的输入和输出


5.文件位置标记及其定位


【C语言程序设计】对文件的输入和输出

a.使用rewind函数使文件位置标记指向文件开头。

如:rewind(fp)

b.用fseek函数改变文件位置标记。

调用形式为:fseek(文件类型指针,位移量,起始点)

如:fseek(fp,100L,0)