既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
fgetc
读取字符
函数原型:
int fgetc( FILE *fp);
- 从fp中读取一个字符,作为返回值返回
fputc
写入字符
函数原型:
int fputc( int c, FILE *stream );
-
c是一个整型变量,要写到文件的字符
-
stream:文件指针,要写入的文件
fgets
读取字符串
函数原型:
char * fgets ( char * str, int num, FILE * stream );
-
str:接受字符串的内存地址,可以是数组别名,也可以是指针
-
n: 指出要读取的字符的个数
-
stream:这个是文件指针,指出要从中读取字符的文件
fputs
写入字符串
函数原型:
int fputs( const char *string, FILE *stream );
-
str:之处要写入到文件中去的字符串,不包括最后的’\0’
-
stream:这个是文件指针,字符串要写入到的文件指针
fscanf
格式化输入
函数原型:
int fscanf( FILE *stream, const char *format [, argument ]... );
-
stream:这个是文件指针
-
format:这是个指向字符串的字符指针,字符串中含有要写出数据的格式,所以该字符串成为格式串
-
argument: 是要写入文件的变量表列,各变量之间用逗号分隔。
fprintf
格式化输出
函数原型:
int fprintf( FILE *stream, const char *format [, argument ]...);
-
stream:这个是文件指针
-
format:这是个指向字符串的字符指针,字符串中含有要写出数据的格式,所以该字符串成为格式串
-
argument: 是要写入文件的变量表列,各变量之间用逗号分隔。
fread
二进制输入
函数原型:
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
-
ptr:目标内存块
-
size:一次读取的字节大小
-
count:一次读取多少个 size
-
stream:文件指针
fwrite
二进制输出
函数原型:
size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );
-
ptr:目标内存块
-
size:一次读取的字节大小
-
count:一次读取多少个 size
-
stream:文件指针
文件的随机读写
=======
fseek
根据文件指针的位置和偏移量来定位文件指针。
函数原型:
int fseek ( FILE * stream, long int offset, int origin );
举个栗子:
#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;
}
ftell
返回文件指针相对于起始位置的偏移量
函数原型:
long int ftell ( FILE * stream );
举个栗子:
#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;
}
rewind
让文件指针的位置回到文件的起始位置
函数原型:
void rewind( FILE *stream );
举个栗子:
#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';
puts (buffer);
return 0;
}
文件结束判定
======
feof
函数原型:
int feof(FILE *fp)
在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。
而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。
- 文本文件读取是否结束,判断返回值是否为EOF (fgetc),或者NULL(fgets)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
在文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。
而是应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。
- 文本文件读取是否结束,判断返回值是否为EOF (fgetc),或者NULL(fgets)
[外链图片转存中…(img-9VzhArTw-1715692060929)]
[外链图片转存中…(img-pYMmSZ3p-1715692060930)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!