欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 文件管理下:文件函数的学习

文件管理下:文件函数的学习

2024/10/24 21:25:50 来源:https://blog.csdn.net/2302_79964175/article/details/140243124  浏览:    关键词:文件管理下:文件函数的学习

前言

Hello,小伙伴们你们的作者君又来了,上次我们简单介绍了文件的坐拥并简单提到了数据的读取,和C语言的默认流的作用,今天我将继续带领大家探索文件的奥秘,大家准别好了吗?

在内容开始之前还是按照惯例,求三连,如果您喜欢我的内容,还请不要吝啬手中的三连,您的三连就是我更新的最大动力,好,废话不多说,开始我们今天的学习。

我们紧接上期的内容,没看上期的同学还请先去补课哈,若有问题欢迎大家来评论区参与理性谈论。http://t.csdnimg.cn/PdzPn

1.文件的顺序读写

1.1顺序函数读写介绍

上面说的适用与所有输入流一般指标准输入流和其他输入流(如文件输入流);所有输出流,一般指适用于标准输出流和其他输入流(文件输出流)。

fputs//fgets

fput函数的作用就相当于将

I am a student 

are you OK  写到了test.txt文件中

fgetc函数的作用就是从文件中读取数据,这时数据可以被打印。

char*string -->将数据读取到的字符的地址

int n --->要读取的字节个数

FILE* stream 数据来源的文件

fgetc函数在遇到‘\n’时就会停止读取,不会进行换行打印。 

1.2对比一组函数

scanf/fscnaf/sscanf

printf/fprintf/sprintf

fsanf // fprintf 

 

fscanf的作用就相当于从文件中读取标准格式化的数据 

相对的fprintf就是从变量中读取数据然后写进文件中。

sscanf // sprintf 

 

从上面的代码就可看出两个函数的作用:
1.sprintf:就是将将格式化的数据写进字符串。

2.sscanf:就是从字符串中读取数据写进变量中。 

 2.文件的随机读写

2.1 fseek

int fseek ( FILE * stream, long int offset, int origin );
/* fseek example */#include <stdio.h>int main (){FILE * pFile;pFile = fopen ( "example.txt" , "wb" );fputs ( "This is an apple." , pFile );fseek ( pFile , 9 , SEEK_SET );fputs ( " sam" , pFile );fclose ( pFile );return 0;}

根据文件指针的位置和偏移量来定位文件指针。

2.2 ftell

返回文件指针相对于起始位置的偏移量

long int ftell ( FILE * stream );
 /* ftell example : getting size of a file */#include <stdio.h>int main (){FILE * pFile;long size;pFile = fopen ("myfile.txt","rb");if (pFile==NULL) 
perror ("Error opening file");else{fseek (pFile, 0, SEEK_END);   // non-portablesize=ftell (pFile);fclose (pFile);printf ("Size of myfile.txt: %ld bytes.\n",size);}return 0;

2.3 rewind

让指针的位置回到文件的起始位置

void rewind ( FILE * stream );
 /* rewind example */#include <stdio.h>int main (){int n;FILE * pFile;char buffer [27];pFile = fopen ("myfile.txt","w+");for ( n='A' ; n<='Z' ; n++)fputc ( n, pFile);rewind (pFile);fread (buffer,1,26,pFile);fclose (pFile);buffer[26]='\0';printf(buffer);return 0;}

好,今天的文件函数学习就到这里,咱们下期再见,拜拜。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com