C语言的文件操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言的文件操作
C语言提供了一组用于文件操作的函数,这些函数可以创建、打开、读取、写入和关闭文件。文件操作在C语言中非常重要,因为它允许程序与外部存储进行交互,并且读取和写入文件是我们日常编程工作中最常见的操作之一、在这篇文章中,我将介绍C语言中文件操作的基本概念和常用函数。
在C语言中,首先需要包含头文件`stdio.h`,这个头文件中包含了一些文件操作所需的函数原型和符号常量。
##文件的创建和打开
要创建一个新的文件,可以使用`fopen`函数。它的原型如下:
```c
FILE *fopen(const char *filename, const char *mode);
```
该函数接受两个参数:`filename`为要创建或打开的文件名,`mode`为打开文件的模式。`mode`参数可以是以下几种:
-"r":只读方式打开文件。如果文件不存在,则打开失败。
-"w":写入方式打开文件。如果文件不存在,则创建一个新的文件;如果文件已经存在,则会清空文件内容。
-"a":追加方式打开文件。如果文件不存在,则创建一个新的文件;如果文件已经存在,则写入的内容将添加到文件的末尾。
-"r+":读写方式打开文件。如果文件不存在,则打开失败。
-"w+":读写方式打开文件。如果文件不存在,则创建一个新的文件;如果文件已经存在,则会清空文件内容。
-"a+":读写方式打开文件。如果文件不存在,则创建一个新的文件;如果文件已经存在,则写入的内容将添加到文件的末尾。
例如,要以只读方式打开名为`example.txt`的文件,可以使用以下
代码:
```c
FILE *file = fopen("example.txt", "r");
if (file == NULL)
perror("Failed to open the file");
exit(1);
```
`fopen`函数返回一个指向`FILE`结构体的指针,该结构体用于后续
对文件进行操作。如果函数返回`NULL`,则表示打开文件失败。`perror`
函数用于输出错误信息。
##读取文件内容
一旦成功打开了一个文件,可以使用`fscanf`和`fgets`函数来读取
文件的内容。
`fscanf`函数用于从文件中读取格式化的数据。它的原型如下:
```c
int fscanf(FILE *stream, const char *format, ...);
```
`stream`参数是`fopen`函数返回的文件指针,`format`参数指定了数据的格式。例如,要从文件中读取一个整数,可以使用以下代码:```c
int num;
if (fscanf(file, "%d", &num) != 1)
perror("Failed to read the number from the file");
exit(1);
```
`&num`表示将读取的整数存储到变量`num`中。`fscanf`函数返回成功读取的项目数。如果返回值不等于1,则表示读取失败。
`fgets`函数用于从文件中逐行读取字符串。它的原型如下:
```c
char *fgets(char *str, int n, FILE *stream);
```
`str`参数是一个指向字符数组的指针,用于存储读取的字符串。`n`参数表示要读取的最大字符数,`stream`参数是`fopen`函数返回的文件指针。例如,要从文件中读取一行字符串,可以使用以下代码:```c
char line[100];
if (fgets(line, sizeof(line), file) == NULL)
perror("Failed to read the line from the file");
exit(1);
```
`sizeof(line)`表示`line`数组的大小。如果`fgets`函数返回
`NULL`,则表示读取失败。
##写入文件内容
要向文件中写入内容,可以使用`fprintf`和`fputs`函数。
`fprintf`函数用于向文件中写入格式化的数据。它的原型如下:
```c
int fprintf(FILE *stream, const char *format, ...);
```
`stream`参数是`fopen`函数返回的文件指针,`format`参数指定了要写入文件的数据的格式。例如,要向文件中写入一个整数,可以使用以下代码:
```c
int num = 10;
if (fprintf(file, "%d", num) < 0)
perror("Failed to write the number to the file");
exit(1);
```
`fputs`函数用于向文件中写入字符串。它的原型如下:
```c
int fputs(const char *str, FILE *stream);
```
`str`参数是一个指向要写入文件的字符串的指针,`stream`参数是`fopen`函数返回的文件指针。例如,要向文件中写入一行字符串,可以使用以下代码:
```c
char line[] = "Hello, world!";
if (fputs(line, file) == EOF)
perror("Failed to write the line to the file");
exit(1);
```
如果`fputs`函数返回`EOF`,则表示写入失败。
##关闭文件
完成对文件的操作后,需要使用`fclose`函数关闭文件。它的原型如下:
```c