首页 > 其他分享 >【C语言】文件操作

【C语言】文件操作

时间:2024-05-24 17:57:53浏览次数:19  
标签:文件 函数 示例 写入 C语言 file 操作 读取

在C语言中,文件操作是通过一组标准库函数来实现的,这些函数定义在 <stdio.h> 头文件中。以下是一些基本的文件操作函数及其用法:

  1. 文件打开(fopen):
FILE *fopen(const char *filename, const char *mode);
  • filename 是要打开的文件名。
  • mode 是打开文件的方式,例如 "r"(只读)、"w"(只写,创建新文件或覆盖旧文件)、"a"(追加,写入文件末尾)等。

示例:

FILE *file = fopen("example.txt", "r");
if (file == NULL) {
    printf("Failed to open file\n");
    return 1;
}
  1. 文件关闭(fclose):
int fclose(FILE *stream);
  • stream 是指向 FILE 对象的指针,该对象标识了要关闭的文件。

示例:

fclose(file);
  1. 文件读取(fscanf, fgets, fread等):

    • fscanf: 从文件读取格式化输入。
    • fgets: 从文件读取一行。
    • fread: 从文件读取指定数量的数据项。示例(使用 fgets):
char buffer[100];
if (fgets(buffer, sizeof(buffer), file) != NULL) {
    printf("%s", buffer);
}
  1. 文件写入(fprintf, fputs, fwrite等):

    • fprintf: 将格式化数据写入文件。
    • fputs: 将字符串写入文件。
    • fwrite: 将指定数量的数据项写入文件。示例(使用 fprintf):
fprintf(file, "Hello, World!\n");
  1. 文件定位(fseek, ftell, rewind等):

    • fseek: 设置文件位置指示器的位置。
    • ftell: 返回文件位置指示器的当前位置。
    • rewind: 将文件位置指示器设置回文件的开头。示例(使用 fseekftell):
long position = ftell(file); // 获取当前位置
fseek(file, 10, SEEK_SET); // 移动到文件的第10个字节
  1. 文件错误处理:

当进行文件操作时,可以使用 ferror 函数来检查是否发生了错误,使用 clearerr 函数来清除错误标志和文件结束标志。

示例:

if (ferror(file)) {
    printf("Error occurred during file operation\n");
    clearerr(file); // 清除错误标志
}

请注意,上述所有函数在成功时返回非零值(对于 fclose,成功时返回0),在失败时返回零或EOF(对于文件读取函数)。因此,在使用这些函数时,始终检查其返回值以确保操作成功。

标签:文件,函数,示例,写入,C语言,file,操作,读取
From: https://blog.csdn.net/dulgao/article/details/139181257

相关文章

  • 【C语言】字符函数和字符串函数
    在C语言中,字符函数和字符串函数通常用于处理单个字符和字符串。这些函数定义在<ctype.h>(字符函数)和<string.h>(字符串函数)头文件中。以下是一些常用的字符函数和字符串函数及其用法:字符函数(ctype.h)字符函数主要用于测试字符的属性或转换字符。isalnum():检查字符是......
  • 操作系统3_作业与处理机调度
    操作系统3_作业与处理机调度文章目录操作系统3_作业与处理机调度1.作业的概念与组成2.作业的建立及状态3.处理机调度相关概念3.1调度级别3.2调度队列模型3.3选择准则4.作业调度与进程调度5.典型处理机调度算法5.1先来先服务算法FCFS5.2短......
  • 操作系统2_进程管理
    操作系统2_进程管理文章目录操作系统2_进程管理1.进程的引入2.进程概念、特征及状态2.1进程的概念2.2进程的特征2.3进程的状态3.进程的组成及上下文3.1进程组成3.2进程上下文3.3进程空间4.进程的创建与撤销4.1创建进程4.2撤销进程......
  • STL 以及 C语言与C++的区别
    C++语言的标准库(STL)容器(Containers)vector:动态数组,可以动态增长和收缩,支持快速随机访问元素。list:双向链表,支持在任意位置快速插入和删除元素。map:关联容器,以键值对(key-value)形式存储元素,支持快速查找和插入。竞赛常用C++STL用法https://io.zouht.com/154.htmlv......
  • Java利用Aop切面记录操作日志(注解方式)
    前提需求之前收到一个新需求,要求对已有的系统上新增一个记录操作日志的功能,对于这类功能大家应该也看的很多了,必然是AOP进行解决,方便快捷,就是需要一个个方法加注释比较麻烦,说到AOP,就先粗略的介绍下AOPAOP的概念1.1什么是AOP?AOP(AspectOrientedProgramming):⾯向切⾯编程......
  • 二维码生成器,一个支持多文件在线转二维码的的工具,免费二维码生成器
    随着科技的飞速发展,二维码已成为我们生活中不可或缺的一部分。从支付到信息分享,再到活动报名,二维码以其独特的优势,为我们带来了极大的便利。在众多二维码生成器平台中,易易二维码凭借其丰富的功能和卓越的性能,逐渐崭露头角,成为众多用户的首选。本文将对易易二维码生成器平台工具的......
  • VBS(Visual Basic Script)是一种脚本语言,可以使用ADO(ActiveX Data Objects)来连接和操作A
    在PowerShell中,可以使用COM对象创建ADO连接并执行SQL查询来连接和操作Access数据库。以下是一个示例代码:powershellCopyCode#CreateaconnectiontoAccessdatabaseusingADO$conn=New-Object-ComObjectADODB.Connection$conn.Provider="Microsoft.ACE.OLEDB.12.0"......
  • Nginx的配置文件
    Nginx的配置文件是其核心组件之一,它决定了Nginx服务器的行为和功能。以下是关于Nginx配置文件的重点解说:1.配置文件的位置和名称Nginx的配置文件通常命名为nginx.conf,并且位于Nginx安装目录的conf或config文件夹中。在Linux系统上,常见的位置是/etc/nginx/nginx.conf或/usr/l......
  • Ubuntu 运行可执行程序提示没有那个文件
    最近,我在Ubuntu上运行一个可执行程序时提示没有那个文件或目录。但事实上那个文件是存在的,因此有些迷茫。在了解过程中,发现这种提示对应的情况有如下几种:1.文件路径错误2.文件不存在3.权限问题4.缺少依赖项5.文......
  • lua打印调用的函数文件及行数
    lua根据调用堆栈可以打印调谁调用了我 string.split=function(s,delim)localsplit={}localpattern="[^"..delim.."]+"string.gsub(s,pattern,function(v)table.insert(split,v)end)returnsplitendfunctiongetWhoCallsMe()......