浩然酒店新濠代客反水 發表於 2025-4-14 15:27:00

文件IO-文件操作(1)

<h1 id="打开文件">打开文件</h1>
<p>打开文件函数说明</p>
<pre><code>//pathname-&gt;待打开的文件的路径
//mode-&gt;访问文件的权限
//"r":以只读的方式打开,文件必须存在
//"r+":以读写的方式打开,文件必须存在
//"w":以只写的方式打开,如果文件不存在,则创建;如果存在,内容会被清空
//"w+":以读写的方式打开,如果文件不存在,则创建;如果存在,内容会被清空
//"a":以只写的方式打开,如果文件不存在,则创建;文件位置偏移到文件末尾(以追加的方式写入)
//"a+":以读写的方式打开,如果文件不存在,则创建;文件位置偏移到文件末尾(以追加的方式写入)
//返回值:成功返回文件指针,失败返回null
FILE *fopen(const char *pathname,const char *mode);
</code></pre>
<h1 id="读取数据">读取数据</h1>
<p>函数大体分为三类:字符读取(fgetc)、按行读取(fgets)、按块读取(fread)。</p>
<h2 id="字符读取">字符读取</h2>
<pre><code>//stream:待读取的文件
//返回值:读取成功返回字符的ASCII码,否则返回EOF(-1)
//EOF:可能是到达文件末尾也有可能读取错误
int fgetc(FILE *stream);//等价于int getc(FILE *stream);
int getchar(void);        //从标准输入中获取stdin
</code></pre>
<h2 id="按行读取">按行读取</h2>
<pre><code>//s:自定义缓存区的指针
//size:自定义缓冲区的大小
//stream:被读取文件数据的文件指针
//返回值:成功返回指针s,失败返回null,可能到达末尾也可能遇到错误
char *fgets(char *restrict s,int n,FILE * restrict stream);
char *gets(char *s);//从stdin读入数据
</code></pre>
<h2 id="按块读取">按块读取</h2>
<pre><code>//ptr:自定义缓冲区指针
//size:数据块的大小
//nmemb:数据块的个数
//stream:被读取数据的文件指针
//返回值:成功:读取的数据块的个数等于nmemb;失败:读取的数据块的个数小于nmemb,或等于0
//返回值小于nmemb失,可能到达文件末尾,也可能遇到错误
size_t fread(void *ptr,size_t size,size_t nmemb, FILE *stream);
</code></pre>
<h2 id="feof函数">feof函数</h2>
<p>此函数用于判断是否到达文件的末尾</p>
<pre><code>int feof(FILE *stream);//到达文件末尾返回非0值
</code></pre>
<h2 id="ferror函数">ferror函数</h2>
<p>判断是否出错</p>
<pre><code>int ferror(FILE *stream);//如果发生错误返回非0值
</code></pre><br><br>
来源:https://www.cnblogs.com/lradian/p/18824968
頁: [1]
查看完整版本: 文件IO-文件操作(1)