前言
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;}
好,今天的文件函数学习就到这里,咱们下期再见,拜拜。