C语言教程-C语言中的文件处理
C语言教程-在编程中,我们可能需要生成特定的输入数据多次。有时,仅在控制台上显示数据是不够的。要显示的数据可能非常庞大,而控制台上只能显示有限量的数据,并且由于内存是易失性的,无法反复获取以编程方式生成的数据。然而,如果我们需要这样做,我们可以将其存储在易失性的本地文件系统上,每次都可以访问它。这就是C语言中文件处理的需要之处。
C语言中的文件处理使我们能够通过C程序在本地文件系统上创建、更新、读取和删除文件。可以对文件执行以下操作:
- 创建新文件
- 打开现有文件
- 从文件中读取数据
- 向文件中写入数据
- 删除文件
文件处理的函数
C库中有许多用于打开、读取、写入、搜索和关闭文件的函数。文件函数列表如下:
序号 | 函数 | 描述 |
---|---|---|
1 | fopen() | 打开新文件或现有文件 |
2 | fprintf() | 向文件写入数据 |
3 | fscanf() | 从文件中读取数据 |
4 | fputc() | 向文件写入一个字符 |
5 | fgetc() | 从文件中读取一个字符 |
6 | fclose() | 关闭文件 |
7 | fseek() | 将文件指针设置到给定位置 |
8 | fputw() | 向文件写入一个整数 |
9 | fgetw() | 从文件中读取一个整数 |
10 | ftell() | 返回当前位置 |
11 | rewind() | 将文件指针设置为文件开头 |
打开文件:fopen()
在可以读取、写入或更新文件之前,我们必须打开文件。fopen()函数用于打开文件。fopen()函数的语法如下:
FILE fopen( const char filename,const char mode );
fopen()函数接受两个参数:
- 文件名(字符串)。如果文件存储在特定位置,则必须在文件存储的路径上加上路径。例如,文件名可以为"c://some_folder/some_file.ext"。
- 打开文件的模式。它是一个字符串。
我们可以在fopen()函数中使用以下模式之一。
模式 | 描述 |
---|---|
r | 以读模式打开文本文件 |
w | 以写模式打开文本文件 |
a | 以追加模式打开文本文件 |
r+ | 以读写模式打开文本文件 |
w+ | 以读写模式打开文本文件 |
a+ | 以读写模式打开文本文件 |
rb | 以读模式打开二进制文件 |
wb | 以写模式打开二进制文件 |
ab | 以追加模式打开二进制文件 |
rb+ | 以读写模式打开二进制文件 |
wb+ | 以读写模式打开二进制文件 |
ab+ | 以读写模式打开二进制文件 |
fopen函数的工作方式如下。
- 首先,它搜索要打开的文件。
- 然后,它将文件从磁盘加载并将其放入缓冲区中。缓冲区用于提高读操作的效率。
- 它设置一个字符指针,该指针指向文件的第一个字符。
考虑以下示例,它以写模式打开一个文件。
#include<stdio.h>
void main( )
{
FILE *fp ;
char ch ;
fp = fopen("file_handle.c","r") ;
while ( 1 )
{
ch = fgetc ( fp ) ;
if ( ch == EOF )
break ;
printf("%c",ch) ;
}
fclose (fp ) ;
}
输出
将打印文件的内容。
#include;
void main( )
{
FILE *fp; // file pointer
char ch;
fp = fopen("file_handle.c","r");
while ( 1 )
{
ch = fgetc ( fp ); //Each character of the file is read and stored in the character file.
if ( ch == EOF )
break;
printf("%c",ch);
}
fclose (fp );
}
关闭文件:fclose()
fclose()函数用于关闭文件。在对文件进行所有操作后,必须关闭文件。fclose()函数的语法如下:
int fclose( FILE *fp );