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函数,而是使用文件操作函数来完成文件的读写操作。

相关文章
|
7天前
|
存储 自然语言处理 程序员
【C语言】文件的编译链接和预处理
【C语言】文件的编译链接和预处理
|
11天前
|
存储 C语言
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
25 15
|
5天前
|
存储 C语言
【c语言】职工信息管理系统 包含读取写入txt文件,职工信息的增删改查
【c语言】职工信息管理系统 包含读取写入txt文件,职工信息的增删改查
|
11天前
|
存储 C语言
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
【C语言】C语言-设备管理系统(源码+数据文件)【独一无二】
|
23天前
|
Linux C语言 Windows
C语言文件编程-Linux环境下运行
本文介绍了在Linux环境下使用C语言进行文件编程时的两种主要接口:C标准库函数与Linux系统调用。C标准库提供了`fopen`, `fread`, `fwrite`, 和 `fclose`等函数,适用于普通文件操作;而Linux系统调用如`open`, `read`, `write`, 和 `close`则更适合处理设备文件,同时也可用于普通文件。这两种方法的主要区别在于前者使用文件指针,后者使用文件描述符。文章还给出了两个示例程序:一个使用C标准库函数实现文件复制,另一个则使用Linux系统调用完成相同任务。
20 2
|
2月前
|
编译器 C语言
C语言编译详解:GCC分步编译与一次编译多个文件
C语言编译详解:GCC分步编译与一次编译多个文件
120 2
|
2月前
|
存储 C语言
C语言文件读写详解
C语言文件读写详解
36 1
|
2月前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
29 0
|
2月前
|
C语言 Windows
【C语言】:文件读写相关函数介绍
【C语言】:文件读写相关函数介绍
23 0
|
2月前
|
编译器 程序员 Linux
C语言编程的各种源码文件
C编程的各种源码文件