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

前言

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-portable
 size=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;
 }

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

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值