C语言文件操作函数

C语言 文件操作相关函数 文章目录头文件:stdio.h文件打开关闭函数文件打开(fopen)参数mode可选值案例文件关闭(fclose)文件读写相关函数总览字符读写函数字符读写案例行读写函数行读写案例块读写函数块读写案例格式化读写函数格式化读写案例随机读写函数随机读写案例文件操作综合案例 头文件:stdio.h #include <stdio.h> 文件打开关闭函数 文件打开(fopen) 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程序就可用此FIL 阅读详情
13.1C语言文件
1,两种文件存取方式(输入,输出方式)
顺序存取
直接存取
2,数据的两种存放形式
文本文件
二进制文件
 
 
13.2文件指针
定义文件类型指针变量的一般形式:
FILE *指针变量名;
例如:
FILE *fp1,*fp2;
 
 
13.3打开文件
在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为:
fopen(文件名,文件使用方式);
此函数返回一个指向FILE类型的指针.如:
FILE *fp;
fp=fopen("file_1","r");
如果调用成功,fp就指向file_1,否则返回为NULL,所以为了保证文件的正确使用,要进行测试.采用如下语句:
If((fp=fopen("file_1","r"))==NULL)
{
printf("Cannot open this file/n");
exit(0);
}
最常用的文件使用方式及其含义如下:
1,"r".为读而打开文本文件.(不存在则出错)
2,"rb".为读而打开二进制文件.
3,"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖)
4,"wb".为写而打开二进制文件.
5,"a".为在文件后面添加数据而打开文本文件.(若不存在,则新建;反之,在原文件后追加)
6,"ab".为在文件后面添加数据而打开一个二进制文件.
最常用的文件使用方式及其含义如下:
7,"r+".为读和写而打开文本文件.(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变)
8,"rb+".为读和写而打开二进制文件.只是在随后的读写时,可以由位置函数设置读和写的起始位置.
9,"w+".首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失)
10,"wb+".功能与"w+"同.只是在随后的读写时,可以由位置函数设置读和写的起始位置.
最常用的文件使用方式及其含义如下:
11,"a+".功能与"a"相同;只是在文件尾部添加新的数据后,可以从头开始读.
12,"ab+".功能与"a+"相同;只是在文件尾部添加新数据之后,可以由位置函数设置开始读的起始位置.
 
 
13.4关闭文件
当文件的读写操作完成之后,使用fclose函数关闭文件.格式如下:
fclose(文件指针)
如:fclose(fp);
 

13.5调用getc(fgetc)和putc(fputc)函数进行输入和输出
1,调用putc(或fputc)函数输出一个字符
调用形式为:
putc(ch,fp);
功能是:将字符ch写到文件指针fp所指的文件中去.当输出成功,putc函数返回所输出的字符;否则,返回一个EOF值.EOF是在stdio.h库函数文件中定义的符号常量,其值等于-1.
 
 
13.5调用getc(fgetc)和putc(fputc)函数进行输入和输出
例如:把从键盘输入的文本按原样输出到名为file_1.dat文件中,用字符@作为键盘输入结束标志.
#include
Void main()
{
FILE *fpout;
char ch;
if(fpout=fpopen("file_1","w")==NULL)
{
printf("Cannot open this file!/n");
exit(0);
}
ch=getchar();
while(ch!='@')
{ fputc(ch,fpout); ch=getchar(); }
fclose(fpout);
}
2.调用getc(或fgetc)函数输入一个字符
调用形式为:
ch=getc(pf);
功能是:从pf指定的文件中读如一个字符,并把它作为函数值返回.
例如:把一个已存在磁盘上的file_1.dat文本文件中的内容,原样输出到终端屏幕上.
#include
void main(){
FILE *fpin;
char ch;
if((fpin=fopen("file_1.dat","r"))==NULL)
{ printf("Cann't open this file!/n");exit(0);}
ch=fgetc(fpin);
while (ch!=EOF)
{ putchar(ch); ch=fgetc(fpin);}
fclose(fpin);
}
 

13.6判断文件结束函数feof
EOF可以作为文本文件的结束 标志,但不能作为二进制文件的结束符.feof函数既可以判断二进制文件,又可以判断文本文件.
例:编写程序,用于把一个文本文件(源)复制到另一个文件(目的)中,源文件名和目的文件名由命令行输入.命令形式如下:
可执行程序名 源文件名 目的文件名
#include
void filecopy(FILE* ,FILE *);
void main(int argc,char *argv[]){
FILE *fpin,*fpout;
if(argc==3)
{ fpin=fopen(argv[1],"r");
fpout=fopen(argv[2],"w");
filecopy(fpin,fpout);
fclose(fpin);fclose(fpout);
}
else if(argc>3)
printf("The file names too many!!/n";
else
printf("There are no file names for input or output!!/n );
}
void filecopy(FILE *fpin,FILE *fpout)
{
char ch;
ch=getc(fpin);
while(!feof(fpin))
{putc(ch,fpout); ch=getc(fpin);}
}
 

13.7fscanf函数和fprintf函数
1,fscanf函数
fscanf只能从文本文件中按格式输入,和scanf函数相似,只不过输入的对象是磁盘上文本文件中的数据.调用形式为:
fscanf(文件指针,格式控制字符串,输入项表)
例如:fscanf(fp,"%d%d",&a,&b);
fscanf(stdin,"%d%d",&a,&b);
等价于scanf("%d%d",&a,&b);
3.fprintf函数
fprintf函数按格式将内存中的数据转换成对应的字符,并以ASCII代码形式输出到文本文件中.Fprintf函数和printf函数相似,只是将输出的内容按格式存放到磁盘的文本文件中.调用形式如下:
fprintf(文件指针,格式控制字符串,输出项表)
如:fprintf(fp,"%d %d",x,y);
以下语句 fprintf(stdout,"%d %d",x,y)
 

13.8fgets函数和fputs函数
1,fgets函数
fgets函数用来从文件中读入字符串.调用形式如下:
fgets(str,n,fp);
函数功能是:从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符时,则遇到换行符或一个EOF结束本次读操作,并已str作为函数值返回.
13.8fgets函数和fputs函数
2,fputs函数
fput函数把字符串输出到文件中.函数调用形式如下:
fputs(str,fp);
注意:为了便于读入,在输出字符串时,应当人为的加诸如"/n"这样的字符串.
 
13.9fread函数和fwrite函数
fread and fwrite函数用来读,写二进制文件.它们的调用形式如下:
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
buffer:要输入或输出的数据块的首地址
count:每读写一次,输入或输出数据块的个数
size:每个数据块的字节数
fp:文件指针

13.9fread函数和fwrite函数
例如有如下结构体:
struct st{
char num[8];
float mk[5];
}pers[30];
以下循环将把这30个元素中的数据输出到fp所指文件中.
for(i=0;i<30;i++)
fwrite(&pers[i],sizeof(struct st),1,fp);
 

13.9fread函数和fwrite函数
以下语句从fp所指的文件中再次将每个学生数据逐个读入到pers数组中.
i=0;
fread(&pers[i],sizeof(struct st),1,fp);
while(!feof(fp))
{ i++;
fread(&pers[i],sizeof(struct st),1,fp);
}
 

13.10文件定位函数
1,fseek函数
fseek函数用来移动文件位置指针到指定的位置上,接着的读或写操作将从此位置开始.函数的调用形式如下:
fseek(pf,offset,origin)
pf:文件指针
offset:以字节为单位的位移量,为长整形.
origin:是起始点,用来指定位移量是以哪个位置为基准的.
1,fseek函数
位移量的表示方法
标识符 数字 代表的起始点
SEEK_SET 0 文件开始
SEEK_END 2 文件末尾
SEEK_CUR 1 文件当前位置
假设pf已指向一个二进制文件,则;
fseek(pf,30L,SEEK_SET)
fseek(pf,-10L*sizeof(int),SEEK_END)
对于文本文件,位移量必须是0;如:
fseek(pf,0L,SEEK_SET)
fseek(pf,0L,SEEK_END)
2. ftell函数
ftell函数用以获得文件当前位置指针的位置,函数给出当前位置指针相对于文件开头的字节数.如;
long t;
t=ftell(pf);
当函数调用出错时,函数返回-1L.
我们可以通过以下方式来测试一个文件的长度:
fseek(fp,0L,SEEK_END);
t=ftell(fp);
3.rewind函数
调用形式为:
rewind(pf);
函数没有返回值.函数的功能是使文件的位置指针回到文件的开头.
 

13.10文件应用
在磁盘上的test.txt文件中放有10个不小于2的正整数,用函数调用方式编写程序.要求实现:
1,在被调函数prime中,判断和统计10个整数中的素数以及个数.
2,在主函数中将全部素数追加到磁盘文件test.txt的尾部,同时输出到屏幕上.
#include
#include
Int prime(int a[],int n)
{
int I,j,k=0,flag=0;
for(i=0;i { for(j=2;j if(a[i]%j==0)
{ flag=0; break;}
else flag=1;
if(flag)
{a[k]=a[i];k++;}
}
return k;
}
void main(){
int n,I,a[10];
FILE *fp;
fp=fopen("test1-2.txt","r+");
for(n=0;n<10;n++)
fscanf(fp,"%d",&a[n]);
n=prime(a,n);
fseek(fp,o,2);
for(i=0;i {printf("%3d",a[i]);
fprintf(fp,"%3d",a[i]);
}
fclose(fp);
} 
 
【C语言】文件操作函数详解 C语言的文件操作函数提供了一系列用于处理文件的工具,包括打开、关闭、读写、定位文件指针以及检查文件状态等。这些函数为程序员提供了灵活的文件管理能力,从简单的文件读写到复杂的文件处理任务,都可以通过这些标准库函数来实现。掌握这些函数的使用对于编写健壮且可靠的C程序至关重要。 阅读详情

相关推荐

手把手教你用Isaac Sim 8打造逼真光影效果:参数设置与场景应用

本文详细介绍了如何使用Isaac Sim 8打造逼真光影效果,涵盖基础参数设置、高级材质交互、专业级灯光造型技法以及复杂场景的灯光布局策略。通过实战案例和参数调优技巧,帮助用户提升虚拟场景的视觉表现,适用于数字孪生、虚拟仿真和影视特效等领域。

weixin_30836759的博客 78

C语言文件操作大全

C语言文件操作函数大全 2018-1-19  13.1C语言文件 1,两种文件存取方式(输入,输出方式) 顺序存取 直接存取 2,数据的两种存放形式 文本文件 二进制文件 13.2文件指针 定义文件类型指针变量的一般形式: FILE *指针变量名; 例如: FILE *fp1,*fp2; 13.3打开文件 在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为: fopen(文件...

金鳞踏雨 900

微信Dat文件转图片(文末含工具下载)

PC端微信dat图片转换为jpg格式

weixin_40704848的博客 8080

FILE*读写文件

#include #include using namespace std; #define MAX 500 void main() { FILE *fp; FILE *fpout; string fname = "G:\\TestExample\\filept\\中文路径\\BeginGame.txt"; string sResultName = "G:\\TestE

anmingforC的专栏 887

因果推断综述-A Survey on Causal Inference

最近读到一篇讲述很全面的综述文献-《A Survey on Causal Inference》,对于接触因果推断不久的同学而言是特别详细的介绍和科普。文献很长,我会分成几部分介绍。 目录 摘要 第一部分:简介 第二部分:因果推断基础知识 第三部分:基于三种假设的因果推断方法 第四部分:实验 第五部分:应用 摘要 几十年来,因果推理是一个跨许多领域的关键研究主题,如统计、计算机科学、教育、公共政策和经济学。与随机对照试验相比,研究方向由于可用数据量大且预算要求低,如今,从观测数据..

海边凝望的博客 3182

机器学习-深嵌交叉验证(Nested Cross-Validation)

Section I: Code and Analyses 第一部分:代码 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from...

Santorinisu Blogs 2715

程序的翻译环境和执行环境

再ANSI C的任何一种实现中,存在两个不同的环境 第一种是翻译环境,在这个环境中源代码被转化为可执行机器指令。 第二种是执行环境,它用于实际执行代码 #include <stdio.h> #include <windows.h> int main() { FILE* pf = fopen("test.txt", "w"); fputs("abcdef", pf);//先将代码放在输出缓冲区 printf("睡眠10秒-已经写数据了,打开test.txt文件,发现文件没有内容

weixin_61282808的博客 305

STM32驱动数码管:从硬件连接到动态显示实现

本文详细介绍了使用STM32单片机驱动数码管的完整流程,从硬件连接到软件实现。内容涵盖共阳/共阴数码管原理、GPIO配置、段码表生成,并重点解析了多位数码管动态显示的核心技术,包括动态扫描原理、消影处理及实战代码,帮助开发者快速掌握这一嵌入式开发基础技能。

p5l2m9n4o6q的博客 574

文件

文件概述 文件是指 一组相关的数据的有序集合,文件通常驻留在外部存储介质(如磁盘)上的,在使用时才调入内存。可以从不同的角度对文件进行分类。 从用户的角度,文件可以分为普通文件和设备文件两种。普通文件是指驻留在磁盘或其他的外部介质上的一个数据集,可以是源文件,目标文件,可执行程序,也可以是一组带输入处理的原始数据,或者是一组输出结果;设备文件是指与主机相关联的各种设备,如显示器,打印机,键盘等...

To be a better man 858

CKS-CN考试之路----02

其实我们根据题目也可以知道秘钥是叫clever-cactus。稍作等待后,确认pod的状态,如果是1/1基本就没问题了。这步不一定做.目的是确定秘钥的名字。

Q先生 654

Diffusion models代码实战:从零搭建自己的扩散模型

这个系列曾经写过三篇文章专门讲代码,分别从数据集、超参数、loss设计、参数计算、Unet结构、正向过程、逆向过程等部分详细介绍了如何搭建DDPM。Diffusion models领域发展神速,最近半年代表作品有OpenAI的GLIDE、DALL-E 2,Google Brain的ImageGen,海森堡大学的Latent Diffusion。这篇博客针对入门新手讲解一下如何利用已有的资源快速搭建自己的Diffusion models。.........

沉迷单车的追风少年 1万+

c语言文件的操作

文件操作1 C语言文件1 两种文件存取方式(输入,输出方式)顺序存取直接存取2 数据的两种存放形式文本文件二进制文件  2 文件指针定义文件类型指针变量的一般形式:FILE *指针变量名;例如:FILE *fp1,*fp2;  3 打开文件在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为:fopen(文件名,文件使用方式);此函数返回一个指向FILE类型的指针.如

让风留下痕迹 736

PPF函数可视化生产可能性边界线(R语言)

假设产品A的生产函数为A = 2 * R1 + R2,产品B的生产函数为B = R1 + 2 * R2,其中A和B分别表示产品A和产品B的产量,R1和R2表示资源1和资源2的分配数量。首先,让我们定义两种产品:产品A和产品B,它们的生产分别需要不同的资源和技术。现在我们已经计算了每种分配比例下的产品A和产品B的产量,接下来我们可以绘制生产可能性边界线。运行完整的代码后,我们将得到一个图形,显示了生产可能性边界线,该线代表经济体在给定资源和技术条件下所能生产的所有产品组合。

2301_79326559的博客 874

【C语言】文件操作函数

函数在C语言中用于打开文件,并返回一个指向文件的指针,可以根据指定的文件名和打开模式进行不同类型的文件操作。函数关闭文件,以确保文件资源得到正确释放。函数用于打开一个具有指定文件名的文件,并返回一个文件指针,以供后续的文件读写操作使用。函数之后,应该确保不再需要对该文件进行操作,以免出现意外的错误。函数在关闭文件后,将无法再对该文件进行读写操作。函数用于关闭一个打开的文件,并释放与文件相关的资源。函数关闭文件,以确保文件资源被正确释放。需要注意的是,在操作文件之后,应该使用。在处理完文件后,应该调用。

2301_76606232的博客 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C语言---文件操作及文件操作函数详解

文章目录一、为什么使用文件?二、什么是文件?三、文件的打开和关闭3.1 文件指针3.2 文件的打开和关闭 本章重点 为什么使用文件 什么是文件 文件的打开和关闭 文件的顺序读写 文件的随机读写 文本文件和二进制文件 文件读取结束的判定 文件缓冲区 一、为什么使用文件? 从本专栏第一篇博客起到现在,我们写过的所有的程序,包括扫雷、三子棋、通讯录,它们的运行都是一次性的。当运行程序时,我们所写入和输出的内容都是存储于计算机内存中的,当程序运行结束就会消失。当重启程序,我们还得重新开始操作,这无疑是不合理的

羟基与苯的博客 4179

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

c语言文件操作函数

文件操作函数

qq_42027094的博客 6308

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[C语言]文件操作函数

[C语言]文件操作函数 ​ 本文主要学习**fopen,fclose,fgetc,fgets,fputc,fputs,fwrite,fread,feof**这几个文件操作函数。 ​ 以上函数,需要导入头文件 stdio.h ​ 为什么要学习这些函数?肯定是因为我们需要存储我们的数据,使数据放入到硬盘中方便保存。 ​ 本文中梳理一些最常见的文件操作函数。 前言:文本文件和二进制文件 ​ 根据数据的组织形式,数据文件被称为文本文件或者二进制文件。 ​ 数据在内存中以二进制的形式存储,如果不加转换的输

a7671773的博客 8272

C语言常见的文件操作函数总结

本文总结了C语言中,有关文件操作的一些常用的函数。由于在日常较少使用这些函数,每每想用时又不免查找,因此有了这篇文章。

Kaisir777的博客 1072

C语言文件操作函数简介

C语言常用的文件函数笔记汇总

2301_76161684的博客 1372

C语言-文件操作函数大全

fopen` 函数用于打开一个文件,并返回一个指向该文件的指针。如果打开文件失败,`fopen` 会返回 `NULL`。```c```参数:- `path`: 要打开的文件的路径。- `mode`: 文件的打开模式(例如:`"r"` 读取模式,`"w"` 写入模式,`"a"` 追加模式等)。如果成功,返回一个指向 `FILE` 对象的指针。如果失败,返回 `NULL`。`fclose` 函数用于关闭由 `fopen` 函数打开的文件。

Jason_from_China的博客 2211

C语言常见文件操作函数总结详解

C语言文件操作函数,怕是很多人的痛,因为在各种地方都能用到,说的简单一点在某些课堂作业上,可能会让你去操作一个txt文档的读写,再就是课程设计时候老师要求把数据存放到文本文件中,我曾经见过一个粉丝问我问题,他们的老师要求简直离谱,是必须使用文本文档来存放数据!我直接就????????????,怎么还有这种要求阿?数据库操作也不是不行阿,非得用文本文件,虽说这样比较死板,但也侧面反映出了教学对文件操作的重视,再往深了说,比如你要解析某个文件格式,比如常见的PE文件,关于文件的读写几乎是必不可少的一步,首先得读

KOOKNUT的博客 2317

C语言文件操作函数大全

参数stream为已打开的文件指针,参数ptr 指向欲存放读取进来的数据空间,读取的字符数以参数size*nmemb来决定。Fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。函数说明 fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。

xinyuerr的博客 918

【c语言】文件操作函数详解

就像顺序表或者栈等等的一些数据结构中一样,C语言的io库定义了这样的结构体来管理文件流的信息(上面有展示),也就是文件指针指向文件信息结构区,文件信息区又有位置指针指向文件流,每次文件读取完函数都会移动位置指针,读取一个字符的就推进一格,读取字符串的就推进到读取到的位置,我们无需操作就能继续对接下来的文件进行读.函数的返回值是char*类型,和第一个参数一样,在读取没有问题时,它会。,在计算机中,输入流有很多种,它代表了数据的来源,可以是键盘,网络,文件或是其他设备,到这里可能有些读者有疑问了,

jiunian_thx_cn的博客 754

C语言的函数与文件操作

c语言中使用函数对语句进行分组 所有的c语言程序都是由一个或多个的的函数构成的 所有c语言程序中必须有一个叫做main的函数,这个函数叫做主函数 函数之间通过互相调用建立联系,在函数调用过程中主动发起的一方叫调用函数,被动接受的一方叫被调用函数 返回值是一个特殊的变量,函数中使用return语句对返回值变量赋值 调用函数中可以把函数调用语句当数字使用,这个数字就来自于函数的返回值变量,返回

Robot Man的技术博客 784

C语言专题之文件操作相关函数

1)函数原型:size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);1)函数原型:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);1)函数原型:char *fgets(char *s, int n, FILE *stream);1)函数原型:int fputs(const char *s, FILE *stream);

2401_89278589的博客 2122
上一篇: VS2005编译DXSDK遇到的问题
下一篇: C语言字符串函数
primer_programer
博客等级 码龄20年 283粉丝 180原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值