《C和指针》之“输入输出函数”总结

1. 先来几个小的程序!

 

 

运行Test 1,发现输出的第一个并不是3,第二次输出的才是3。这是因为printf("%d")的格式解析原因;

运行Test 2,发现除了如果一次输入多个字符的话,只能显示一个字符;这就是fflush(stdin)的作用,清空缓冲区!

 

2. 为什么会存在freopen()这个函数?

    这是函数原型:FILE *freopen(char *filename, char *type, FILE *stream);

    主要用于文件重定向,比如freopen("1.txt","w",stdout);实现了将标准输出定向到文本1.txt中的目的。

 

3. 使用%-6.10s打印会有什么效果?

    左侧对其,保留10位,如不足10位并且大于6位,则全部显示,如不足六位则占用六位,右侧使用空格补齐!

 

4. 使用%f打印的时候,存在着四舍五入的情况。

 

5. 输入/输出函数家族

    5.1 单个字符实现

          getchar()、putchar():从标准输入读入字符(或者向标准输出输出字符),是函数

          getc()、fgetc()、putc()、fputc():接收(或输出)流参数,以宏的方式实现

    5.2 一行字符实现

          fgets()、gets():前者接收流参数,后者从标准输入读取,二者都是读取一行内容

          fputs()、puts():前者输出流到文本中,后者从输出文本到标准输出上,二者都是输出一行内容

 

6. 格式化输入/输出函数家族

    6.1 格式化输入实现

          fscanf():接收一个流参数

          sscanf():从内存缓冲区中读取

          scanf():从标准输入中读取

    6.2 格式化输出实现

          fprintf()、sprintf()、printf()和上面的是一一对应的。

 

7. 除了上面处理文本,也就是ascii编码实现的函数外,有专门的对二进制数据进行读写的,分别是fread()和fwrite();

 

8. 改变流读写顺序和位置函数

    ftell()、fseek()、fgetpos()、fsetpos()、rewind()等。

 

9. 改变缓冲区的设置

    setbuf()、setvbuf();后者更为通用。

 

10. 临时文件等文件命令函数

    tmpfile():创建临时文件

    tmpnam():创建临时文件名

    remove():删除文件

    rename():修改文件名

 

11. 处理错误函数

    ferror():出现错误,返回错误信息

    clearerr():重置错误状态

 

12. 如何得到perror函数可能打印的所有错误信息列表?

 

 

 

注:本文中函数名func()只代表函数名,并不能完整的包括返回值以及参数列表情况。如需要请自行查询!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值