C语言输入、输出缓冲区复习

本文主要复习了C语言的输出和输入缓冲区管理,包括数据何时从缓冲区写入文件,以及如何处理输入缓冲区的问题。还介绍了常见的字符串处理函数如strlen、strcpy等,预处理指令的作用,如#include和#define,以及宏的二义性和条件编译的使用。
摘要由CSDN通过智能技术生成

复习:

1、输出缓冲区:

程序输出的数据并没有立即写入到“文件”中,而是先存到了输出缓冲区中,当满足一定条件时写入到文件。

​ 1、从输出切换到输入时 scanf

​ 2、遇到换行符 \n

​ 3、程序结束时

​ 4、缓冲区满4k

​ 5、手动刷新 fflush(stdout)

2、出入缓冲区:

在终端输入数据时,此时数据是由终端保管,当按下回车键时,数据才由终端写入程序的输入缓冲区scanf()函数再从输入缓冲区读取数据给变量。

​ 1、当想要从输入缓冲区读取整型、浮点型数据时,而缓冲区中的数据是字符或符号,此时会读取失败,并且不会从缓冲区中拿走字符或符号,导致了接下来的数据都出问题。

​ 解决:先判断scanf的返回值是否正确

​ scanf("%*[ ^\n ]");

​ scanf("%c");

​ 2、当使用fgets()函数读取字符串时,如果输入的字符超过了size-1,缓冲区中会残留多出来的字符,这样也会影响接下来的数据的读取。

​ scanf("%*[ ^\n ]");

​ scanf("%c");

​ 3、当先输入的整型或浮点型,然后紧接着输入字符或字符串时,前一次可能残留一个\n,会影响字符、字符串的输入。

​ 输入字符时:

​ scanf("%c");

​ 输入字符串:

​ scanf("

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值