note 4

输出缓冲区:

当使用printf、puts、putchar等函数显示数据时,并不会直接显示在屏幕上,而是先放入的输出缓冲区中(提高程序的运行效率),当满足一些条件时才会显示在屏幕上:

1、遇到\n
2、从输出转换到输入状态
3、程序结束
4、当缓冲区满4k
5、手动刷新 fflush(stdout);

输入缓冲区:

在终端中输入的数据会先存储到在输入缓冲区中,然后再根据占位解析成对应的数据,如果前一次输入的数据有残留的垃圾,会影响后续数据的输入

1、输入字符是前一次的输入会残留一个空格或‘\n’,解决方法在%c前面加一个空格
2、如果输入时有若干个垃圾数据,会影响后续所有数据的输出
(1)使用正则表达式,注意:必需确定有垃圾数据时在使用
  scanf("%*[^\n]");//*从缓冲区中获取数据,但不存储到变量中
  scanf("%*c");//清理缓冲区(两句一起使用)
(2)设置缓冲区中的位置指针
  stdin->_IO_read_ptr 开始位置
  stdin->_IO_read_end 结束位置
  stdin->_IO_read_ptr = stdin->_IO_read_end;//清理缓冲区

代码编译时的常见错误:

1、undefined reference to `main’,main函数拼写错误。
2、程序中有游离的‘\357’,使用了中文字符。
3、expected declaration or statement at end of input,大括号不匹配。
4、出现异常数据,变量未初始化、数据溢出、占位符错误。
5、死循环使用Ctrl+c结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值