c语言文件读写

简介: c语言文件读写

原理

C语言文件读写的原理是,先打开文件,然后使用fread或fwrite函数读取或写入文件内容。

文件打开的方式有两种:

  • 以写入模式打开文件,使用fopen()函数以"w"作为第一个参数,如果文件不存在则创建文件,如果文件已经存在则清空文件内容。
  • 以读取模式打开文件,使用"r"作为第一个参数,如果文件不存在则创建文件,如果文件已经存在则打开文件进行读取。

文件打开成功后,我们就可以使用fread或fwrite函数读取或写入文件内容了。
fread函数的原型如下:

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

其中,ptr是指向要读取的数据的指针,size是每个数据项的大小,count是要读取的数据项的个数,stream是文件指针。
fwrite函数的原型如下:

size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);

其中,ptr是指向要写入的数据的指针,size是每个数据项的大小,count是要写入的数据项的个数,stream是文件指针。

以下是一个简单的C语言文件读写操作代码示例:

demo

#include <stdio.h>  

int main() {
     
    FILE *fp;  
    char filename[] = "example.txt";  
    char ch;  

    // 打开文件  
    fp = fopen(filename, "r");  
    if (fp == NULL) {
     
        printf("Failed to open file.\n");  
        return 1;  
    }  

    // 读取文件内容  
    while ((ch = fgetc(fp)) != EOF) {
     
        printf("%c", ch);  
    }  

    // 关闭文件  
    fclose(fp);  

    return 0;  
}

在上面的代码中,我们首先定义了一个文件指针fp,并指定要读取的文件名为example.txt。然后,我们使用fopen函数打开文件,并将文件指针保存在fp变量中。如果文件打开失败,我们将输出一条错误信息并返回1。

接下来,我们使用fgetc函数逐个读取文件中的字符,并将它们输出到屏幕上。当fgetc函数返回EOF时,表示文件已经读取完毕。

最后,我们使用fclose函数关闭文件,并返回0表示程序正常结束。
需要注意的是,在实际应用中,我们应该尽可能地避免使用fopen和fclose函数,而是使用文件操作函数来完成文件的读写操作。

相关文章
|
29天前
|
存储 编译器 C语言
如何在 C 语言中判断文件缓冲区是否需要刷新?
在C语言中,可以通过检查文件流的内部状态或使用`fflush`函数尝试刷新缓冲区来判断文件缓冲区是否需要刷新。通常,当缓冲区满、遇到换行符或显式调用`fflush`时,缓冲区会自动刷新。
|
29天前
|
存储 编译器 C语言
C语言:文件缓冲区刷新方式有几种
C语言中文件缓冲区的刷新方式主要包括三种:自动刷新(如遇到换行符或缓冲区满)、显式调用 fflush() 函数强制刷新、以及关闭文件时自动刷新。这些方法确保数据及时写入文件。
|
1月前
|
C语言
【C语言】探索文件读写函数的全貌(三)
【C语言】探索文件读写函数的全貌
|
1月前
|
存储 C语言
【C语言】探索文件读写函数的全貌(二)
【C语言】探索文件读写函数的全貌
|
1月前
|
C语言
【C语言】探索文件读写函数的全貌(一)
【C语言】探索文件读写函数的全貌
|
1月前
|
存储 文件存储 C语言
【C语言】深入了解文件:简明指南
【C语言】深入了解文件:简明指南
|
2月前
|
Linux C语言
C语言 文件IO (系统调用)
本文介绍了Linux系统调用中的文件I/O操作,包括文件描述符、`open`、`read`、`write`、`lseek`、`close`、`dup`、`dup2`等函数,以及如何获取文件属性信息(`stat`)、用户信息(`getpwuid`)和组信息(`getgrgid`)。此外还介绍了目录操作函数如`opendir`、`readdir`、`rewinddir`和`closedir`,并提供了相关示例代码。系统调用直接与内核交互,没有缓冲机制,效率相对较低,但实时性更高。
|
3月前
|
存储 C语言
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
53 15
|
3月前
|
存储 C语言
【c语言】职工信息管理系统 包含读取写入txt文件,职工信息的增删改查
【c语言】职工信息管理系统 包含读取写入txt文件,职工信息的增删改查
|
3月前
|
存储 自然语言处理 程序员
【C语言】文件的编译链接和预处理
【C语言】文件的编译链接和预处理