fopen\fread\fwrite\fscanf\fprintf\fseek\feof\rewind\fgets\fputc等系列函数使用总结
使用文件的方式共有12种
|
方式 |
意 义 |
|
"rt" |
只读打开 文本文件 |
|
"wt" |
只写打开或建立 文本文件 |
|
"at" |
追加打开 文本文件 |
|
"rb" |
只读打开 二进制文件 |
|
"wb" |
只写打开或建立 二进制文件 |
|
"ab" |
追加打开 二进制文件 |
|
"rt+" |
读写打开 文本文件 |
|
"wt+" |
读写打开或建立 文本文件 |
|
"at+" |
读写打开文本文件,可追加 |
|
"rb+" |
读写打开二进制文件 |
|
"wb+" |
读写打开或建立二进制文件 |
|
"ab+" |
读写打开二进制文件,可追加 |
说明:
1. 文件使用方式由r,w,a,t,b,+六个字符拼成,各字符的含义是:
r(read) 读 w(write) 写 a(append) 追加 + 读和写
t(text) 文本文件,可省略不写 b(banary) 二进制文件
2. 用"r"打开的文件只能读,且文件必须已经存在。
3. 用"w"打开的文件只能写。 若文件不存在,建立之,否则,覆盖之。
4. 用"a"打开的文件只能写,内容追加。文件必须已经存在,否则出错。
5. 打开文件出错时,fopen将返回 NULL。
6. 对于文本文件,读入内存时转换为二进制形式,写入硬盘时转换为文本形式,转换需要一点点时间。对二进制文件的读写不存在这种转换。
7. 文件使用完毕,应关闭之,以避免数据丢失等错误。
8. 标准输入文件(键盘),标准输出文件(显示器 ),标准出错输出(出错信息)由系统打开,可直接使用。
int fprintf(FILE *stream,const char *format,[argument])
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件. fprintf()只能和printf()一样工作. fprintf()的返回值是输出的字符数,发生错误时返回一个负值.
%d 十进制有符号整数
%i 一个整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 自动选择合适的表示法
%n 等于读取字符数量的整数
%[] 一个字符集
%% 一个精度符号
int fscanf(FILE* stream,const char *format,[argument...]);
返回值:整型,成功读入的参数的个数
int fscanf_s(FILE* stream,const char *format,[argument...]);
fclose(文件指针)正常关闭时返回0,否则返回非零。
从ferror和feof获取错误信息或检测是否到达文件结尾
feof文件结束返回非0,否则返回0
int fseek( FILE *stream, long offset, int origin );
第一个参数stream为文件指针
第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移
第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET
SEEK_SET文件开头 SEEK_CUR当前位置SEEK_END文件结尾
fgetc函数
(1)一般调用形式 ch=fgetc(fp);
(2)作用 从指定的文件读入一个字符,即从fp所指向的文件中读入一个字符赋给ch。
(3)返回值
成功:返回值所得到的字符; 失败:返回EOF(-1)。
fputc函数
(1)一般调用形式 fputc(ch,fp);
(2)作用 把一个字符写到磁盘文件上去,即将字符ch输出到fp所指向的文件中去。
(3)返回值
成功:返回值就是输出的字符; 失败:返回EOF(-1)。
说明:函数putchar()是在stdio.h中用预处理命令定义的宏,即:
#define putchar(c) fputc(c,stdout)
char *fgets(char *str, int num, FILE *fp)
参数说明:str: 保存从文件读取出来的字符串
fp: 待读文件的文件指针
num: 表示从文件中读出的字符串不超过 n-1个字符。在读入的最后一个字符后加上串结束标志'\0'
int fputs(const char * s,FILE * stream)
fopen\fread\fwrite\fscanf\fprintf\fseek\feof\rewind\fgets\fputc等系列函数使用总结的更多相关文章
- fopen\fread\fwrite\fseed函数的使用
使用 <stdio.h> 头文件中的 fopen() 函数即可打开文件,它的用法为: FILE *fopen(char *filename, char *mode); filename为文 ...
- 读写大“二进制”文件,不必申请很大内存(fopen,fread,fwrite,fclose)
<?php /** * 读写大二进制文件,不必申请很大内存 * 只有读取到内容才创建文件 * 保证目录可写 * * @param string $srcPath 源文件路径 * @param s ...
- linux缓冲的概念fopen /open,read/write和fread/fwrite区别
fopen /open区别 UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write这里简单的介绍一下他们的区别.1 ...
- fopen /open,read/write和fread/fwrite区别
fopen /open,read/write和fread/fwrite区别 转载URL:http://hi.baidu.com/%B9%C8%C9%F1%B2%BB%CB%C0jdp/ ...
- 文件流:"fopen","fclose",“ftell”"fseek","fgets","fprintf" ,“feof”,"fwrite","fread"
char const* filename="D:/hello.txt"; 路径名使用的是“/”或者使用 转义字符“\\”: "fopen", FILE *fp= ...
- C语言fprintf, fwrite, fscanf, fread混用问题
int main(int argc, const char * argv[]) { // insert code here... FILE * fp = fopen("test.txt&qu ...
- C/C++读写文件的几种方法fstream fopen、fwrite()、fread()操作
C中采用的主要是文件指针的办法,C++中对文件的操作主要运用了"文件流"(即非标准的输入输出)的思想 c读写文件fopen C 库函数 FILE *fopen(const char ...
- fseek ftell rewind
下面几个函数的头文件 : <stdio.h> fseek int fseek( FILE *stream, long offset, int origin ); 第一个参数stream ...
- 那些年,坑死自己的事之fread/fwrite
今天继续看牛人做过的东西,这个小程序并不大,加上相当多的注释行,才5000多行.这个小程序是在linux下实现的,之前自己也一直用vi来看并加以更加详细的注释,但是效率实在太低.于是将其转移到wind ...
随机推荐
- Java中ArrayList源码分析
一.简介 ArrayList是一个数组队列,相当于动态数组.每个ArrayList实例都有自己的容量,该容量至少和所存储数据的个数一样大小,在每次添加数据时,它会使用ensureCapacity()保 ...
- linux下用户以及用户组管理
/etc/passwd ‘/etc/passwd’ 由 ‘:’ 分割成7个字段,每个字段的具体含义是: 1)用户名.用户名字符可以是大小写字母.数字.减号(不能出现在首位).点以及下划线,其他字符不合 ...
- C# DES
using System; //这个是使用DES的基础 using System.Security.Cryptography; //这个是处理文字编码的前提 using System.Text; // ...
- onbeforeunload、beforeunload
<script type="text/javascript"> function addOnBeforeUnload(e) { var ev = e || ev ...
- MVC页面上多个提交按钮提交到不同的Action
使用mvc扩展类,ActionNameAttribute方法如下: [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, In ...
- Github readme语法-- markdown
README 该文件用来测试和展示书写README的各种markdown语法.GitHub的markdown语法在标准的markdown语法基础上做了扩充,称之为GitHub Flavored Mar ...
- jedis源码阅读
package redis.clients.jedis; import java.util.ArrayList; import java.util.HashSet; import java.util. ...
- 工作总结:文件对话框的分类(C++)
原文地址:http://www.jizhuomi.com/software/173.html 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如 ...
- hdu 3394 Railway
这是一道用tarjin求双连通分量的题: 其中,不需要修的道路就是桥的数目: 在图的每个极大环中,如果点的数目小于边的数目,显然这个环中含有子环,并且这个环的边数就是这个环中有冲突的边的数目: 如果点 ...
- hdu 3072
强连通分量——tarjin 算法 这道题和前面那道hdu 2767唯一不同就是,2767需要找出最小数量的边使图成为连通分量,而这个题需要一点点贪心的思想在里面,它需要求出代价最小的边使图成为连通分量 ...