C文件函数总结
1、fopen(打开文件)
表头文件 #include<stdio.h>
定义函数 FILE *fopen(const char * path,const char * mode);
path:字符串包含欲打开的文件路径及文件名, mode:文件访问类型。
mode主要应用有:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
例: FILE *pFile = NULL;
pFile = fopen("C:\\1234.txt", "w+");
if (NULL == pFile)
{
return -1;
}
fclose(pFile);
注:打开文件时,会将文件中内容保存到缓冲区中,对于一般函数而言,都是程序与缓冲区之间操作。
2、fprintf (按指定格式将数据输出到文件中)
表头文件:#include<stdio.h>
函数原型:int fprintf(FILE *stream, char *format[, argument,...]);
FILE* 一个FILE型的指针
char* 格式化参数
返回值:成功时返回转换的字节数,失败时返回一个负数
fprintf(pFile,"%s\n",str);
3、fscanf (按指定格式从文件中输入数据)
表头文件:#include<stdio.h>
函数原型:int fscanf(FILE *stream, char *format[,argument...]);
FILE* 一个FILE型的指针
char* 格式化参数
返回值:成功时返回转换的字节数,失败时返回一个负数
fscanf(pFile,"%s",str);
需要注意的是:fscanf与fprintf如果在同一个范围内,需要使用fseek设置热点位置
4、fseek (移动文件焦点位置)
表头文件 #include<stdio.h>
定义函数 int fseek(FILE * stream,long offset,int whence);
函数说明 fseek()用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动读写位置的位移数。
参数 whence为下列其中一种:
SEEK_SET从距文件开头offset位移量为新的读写位置。SEEK_CUR 以目前的读写位置往后增加offset个位移量。
SEEK_END将读写位置指向文件尾后再增加offset个位移量。
当whence值为SEEK_CUR 或SEEK_END时,参数offset允许负值的出现。
下列是较特别的使用方式:
1) 欲将读写位置移动到文件开头时:fseek(FILE *stream,0,SEEK_SET);
2) 欲将读写位置移动到文件尾时:fseek(FILE *stream,0,0SEEK_END);
返回值 当调用成功时则返回0,若有错误则返回-1,errno会存放错误代码。
5、ftell (获取当前文件焦点位置)
表头文件 #include<stdio.h>
定义函数 long ftell(FILE * stream);
返回值:成功时则返回目前的读写位置,错误则返回-1,errno会存放错误代码。
文件关闭后,文件焦点位置为0。
6、fread(从文件流读取数据)
表头文件 #include<stdio.h>
定义函数 size_t fread(void * ptr,size_t size,size_t count,FILE * stream);
stream:为已打开的文件指针,ptr: 指向欲存放读取进来的数据空间,读取的字符数以参数count来决定。
Fread()会返回实际读取到的count数目,如果此值比参数count来得小,则代表可能读到了文件尾或有错误发生,这时必须用feof()或ferror()来决定发生什么情况。
返回值 返回实际读取到的count数目。
注意:所有对文件内部操作的函数都会修改文件焦点。
7、fwrite (往文件流写入数据)
表头文件 #include<stdio.h>
定义函数 size_t fwrite(const void * ptr,size_t size,size_t count,FILE * stream);
stream:为已打开的文件指针,ptr :指向欲写入的数据地址,size:一个元素的大小,count:元素个数
返回值 返回实际写入的item数目。
例: struct item str[5]; fwrite(str, sizeof(item),5,pFile);
注:count为item个数,不是指所占字节数
8、feof (检查文件流是否读到了文件尾)
定义函数 int feof(FILE * stream);
返回值 返回非零值代表已到达文件尾。
9、fgetc (由文件中读取一个字符)
函数原型 int fgetc(FILE * stream);
返回值 :读取到的字符,若返回EOF则表示到了文件尾。
10、fgets(由文件中读取一字符串)
定义函数 char* fgets(char *s, int size, FILE * stream);
功能:从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。
返回值 gets()若成功则返回s指针,返回NULL则表示有错误发生。
例: char szBuf[32] = {0};
fgets(szBuf,32,pFile);
11、fputc (往文件中写入一个字符)
原型:int fputc(int c, FILE* stream);
返回值:写入成功则返回写入字符,失败返回EOF
12、fputs (往文件中写入一个字符串)
原型 int fputs(const char * s,FILE * stream);
fputs()用来将参数s所指的字符串写入到参数stream所指的文件内。
返回值 若成功则返回写出的字符个数,返回EOF则表示有错误发生。
13、fclose (关闭文件)
原型 int fclose(FILE * stream);
fclose()用来关闭先前fopen()打开的文件,此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。
返回值 若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。
错误代码 EBADF表示参数stream非已打开的文件。
注:关闭文件时,将缓冲区数据保存到文件中。
C文件函数总结的更多相关文章
- PHP写文件函数
/** * 写文件函数 * * @param string $filename 文件名 * @param string $text 要写入的文本字符串 * @param string $openmod ...
- PHP输出XML文件函数
PHP输出XML文件函数 function xml_out($content, $charset = 'utf-8') { @header("Expires: -1"); @hea ...
- PHP多重判断删除文件函数
<?function delete_file($file) { if (file_exists($file)) { $delete = chmod ($file, ...
- PHP常用文件函数和目录函数整理
一.常用文件函数库 1.basename(); -- 返回路径中的文件名部分. string basename ( string $path [, string $suffix ] ) //给出一个包 ...
- BCB/Delphi中常用的VCL函数说明(文件函数)
--------------------文件操作--------------------函数名称:ChangeFileExt函数说明:更改指定文件的扩展名,函数原型如下:AnsiString __fa ...
- 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用
前 言 PHP 学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输 ...
- PHP 文件锁和常用文件函数
文件锁 bool flock ( int handle, int operation [, int &wouldblock] );flock() 操作的 handle 必须是一个已经打开的文件 ...
- php总结7——文件函数库、序列化数据、文件包含
7.1 文件函数库 php用来操作文件的 1) fopen 代开文件或URL 格式:resource fopen(string $filename, string $mode) 'r' 只读方式 ...
- PHP文件函数
PHP文件函数 函数 描述 PHPbasename() 返回路径中的文件名部分. 3chgrp() 改变文件组. 3chmod() 改变文件模式. 3chown() 改变文件所有者. 3clearst ...
- Js文件函数中调用另一个Js文件函数的方法
在项目中Js文件需要完成某一功能,但这一功能的大部分代码在另外一个Js文件已经完成,只需要调用这个文件实现功能.那么如何调用:一个Js文件函数中调用另一个Js文件函数的方法? (直接代码说明) 示例d ...
随机推荐
- Light OJ 1025 - The Specials Menu(区间DP)
题目大意: 给你一个字符串,问有多少种方法删除字符,使得剩下的字符是回文串. 有几个规定: 1.空串不是回文串 2.剩下的字符位置不同也被视为不同的回文串.如:AA有三种回文串 A, A, A ...
- C#代码实现隐藏任务栏、开始菜单和禁用任务管理
一:截图,主要是调用系统接口和更改注册表实现功能 二:代码 using System; using System.Collections.Generic; using System.Linq; usi ...
- poj3294 Life Forms(后缀数组)
[题目链接] http://poj.org/problem?id=3294 [题意] 多个字符串求出现超过R次的最长公共子串. [思路] 二分+划分height,判定一个组中是否包含不小于R个不同字符 ...
- 尚学堂 JAVA Day13 abstract 关键字
Abstract (抽象的) 这是一个关键字. 可以且只可以 用来修饰 <类> <方法>. 1---Abstract 类 如:Animal,可以被理解一个抽象的类.动物嘛,只是 ...
- poj2586
千年虫病毒 一个财务公司受到电脑病毒攻击所以丢失了一部分年终财务的数据. 他们所有记得的东西都在Inc里面储存着,在1999年之前公司要每个月都贴出盈利和亏损情况.亏损的是d,由于收到了攻击,他们不记 ...
- Swap[HDU2819]
SwapTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission ...
- Spring事务配置的五种方式 巨全!不看后悔,一看必懂!
前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的. ...
- gradle 集成到myeclipse
新的项目用到gradle,所以学了下,地址:http://dist.springsource.com/release/TOOLS/gradle :help 下,安装好,重启即可,gradle作为mav ...
- 统计学习导论:基于R应用——第四章习题
第四章习题,部分题目未给出答案 1. 这个题比较简单,有高中生推导水平的应该不难. 2~3证明题,略 4. (a) 这个问题问我略困惑,答案怎么直接写出来了,难道不是10%么 (b) 这个答案是(0. ...
- Error parsing XML: not well-formed (invalid token) 报错+R文件消失解决的方法
xml报错: 这个xml文件上右键source ->format 注意:res下的文件名称不能大写 R文件消失: 在攻克了其它问题的情况下(或者其它问题还没解决先凝视掉) 手动删除gen pro ...