文件操作函数

最近发现看的多又忘的多,懂了也不知道会不会说,仿佛没学一样,还是写一下想看不用再翻字典了..
FILE是一个数据结构,用于访问一个流,每一个流都有一个相应的FILE与它关联

家族名作用可用于所有的流只用于stdin 和 stdin内存中的字符串
getchar字符输入fgetc,getcgetchar用指针下标引用或间接访问
putchar字符输出fputc,putcputchar同上
gets文本行输入fgetsgets用strcpy函数复制读取
puts文本行输出fputsputs同上
scanf格式化输入fscanfscanfsscanf
printf格式化输出fprintfprintfsprintf

fopen函数打开流:

FILE* fopen(char const* name,char const* mode);

r:以只读方式打开,如果要打开的文件不存在,则打开失败
r+:以读写的方式打开,如果要打开的文件不存在,则打开失败
w:以只写的方式打开,如果要打开的文件不存在,就创建该文件
w+:以读写的方式打开,如果要打开的文件不存在,就创建该文件
a:以追加写的方式打开,即该文件的末尾处开始写,如果要打开的文件不存在,就创建该文件
a+:以读写的方式打开,从头开始读,从尾开始写,如果要打开的文件不存在,就创建该文件

1.字符I/O

int getchar(void);

从标准输入流(比如键盘)中读取一个字符
一般习惯写
char ch=getcahr();

int putchar(int char);

将字符c写入标准输出流中(比如屏幕)

1|	int getc(FILE *stream);
	int fgetc(FILE* stream); 
2|	int putc(int c,FILE *stream);
   	int fputc(int c,FILE* stream);
  1. 从文本流stream中读取字符,将stream替换为标准输入流(stdin)即为函数getchar
  2. 将字符c写入文本流stream中,若把stream替换为标准输出流(stdout),即为putchar函数
    另外,fgetc,fputc函数与getc,putc的参数和作用相同。

2.行I/O

char *gets(char *str);
int puts(const char* str);

从标准输入流(键盘)中读取一行字符串,存入字符串str中(并不在缓冲区中存储结尾的换行符)
将字符串str写入标准输出流(屏幕)中(在字符串写入后向输出再添加一个换行符

char *fgets(char *str,int num,FILE*stream);
int fputs(const char *str,FILE*stream);

从文本流stream中读取num个字符放入字符串str中,将stream替换为stdin与函数gets的效果相同
将字符串str写入文本流stream中,将stream替换为stdout与函数puts的效果相同

3.格式化I/O

int fscanf(FILE *stream,const char  *format,...);
int fprintf(FILE *stream,const char *format,...);

从文本流stream中格式化读取内容
将内容格式化写入文本流stream中

4.二进制I/O

size_t fread(void *str,size_tsize,size_t count,FILE *stream);

从stream中读取count个基本单元,一个单元有size字节的内容到str中
该函数的返回值是实际读取到的count数

size_t fwrite(const void *str,size_t size,size_t count,FILE *stream);

将str中的内容写count个单元,一个单元size个字节的内容到stream中
该函数的返回值是实际写入的count数

5.流错误函数

int feof(FILE* stream);
int ferror(FILE* stream);
void clearerr(FILE* stream);

如果流在文件末尾,feof返回真
ferror检查文件的读取是否出错,若出错,返回非零值1,否则,返回0
clearerr对指定流的错误标志进行重置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值