标准文件IO以及scanf fgets gets 以及printf sprintf fprintf的区别

  1. fopen, - stream open functions

FILE *fopen(const char *path, const char *mode);
path: 要打开的文件名(带路径), 普通文件(文本文件,二进制文件)
mode: 指向一个字符串。打开文件的方式:
“r” : 只读方式打开。文件不存在,则报错。打开后,光标在文件头。
“r+”: 读写打开。文件不存在,则报错。打开后,光标在文件头。
“w”: 只写的方式打开。文件不存在,则创建。打开后,文件截短(文件内容清0), 光标定位在开头。
“w+”:读写打开。文件不存在,则创建。
打开后,文件截短。
“a”: append 追加。追加打开,文件不存在,则创建。打开后,光标定位在末尾。
“a+”:读写打开。文件不存在,则创建。
//打开后,光标位置未定义。
//原始读的位置在开头,原始写的位置在末尾。(linux)
返回值:
成功返回FILE指针,
失败返回NULL

  1. fclose 关闭文件流
    int fclose(FILE *fp);//关闭一个文件流
    返回值:
    成功返回0,
    失败返回-1,errno被设置

3.scanf、gets和fgets获取字符串时的区别

1.scanf()
所在头文件:stdio.h
语法:scanf(“格式控制字符串”,变量地址列表);
接受字符串时:scanf(“%s”,字符数组名或指针);

2.gets()
所在头文件:stdio.h
语法:gets(字符数组名或指针);

两者在接受字符串时:
1.不同点:
scanf不能接受空格、制表符Tab、回车等;
而gets能够接受空格、制表符Tab和回车等;

2.相同点:
字符串接受结束后自动加’\0’。
例1:

 #include <stdio.h>
main()
{
  char ch1[10],ch2[10];
  scanf("%s",ch1);
  gets(ch2);
}
依次键入asd空格fg回车,asd空格fg回车,则ch1="asd\0",ch2="asd fg\0"

3、fgets函数
从流中读一行或指定个字符,原型是char *fgets(char *s, int n, FILE *stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。   
形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针

二.printf、fprintf、sprintf的区别

1..fprintf#include <stdio.h> int fprintf( FILE *stream, const char *format, ... )
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件

2.sprintf是格式化输出到一个字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值