今天写malloc开辟失败时,return 0 时,考虑到输入缓冲区中剩余的东西,会影响其他操作(例如压栈)qaq,记录一下内。

1.键盘输入缓冲区

像程序输入时,输入的东西会被存放在存储在内存的输入缓冲区中(也可以叫做输入流)。

例如

# include <stdio.h>
int main(void)
{int a, b, c;scanf("%d", &a);printf("a = %d\n", a);scanf("%d", &b);printf("b = %d\n", b);scanf("%d", &c);printf("c = %d\n", c);return 0;
}

无论你输入1 2 3还是

1

2

3

都不影响结果。

输入缓冲区像队列qaq(我还感觉它的寿命<=main)qaq

2.fflush(stdin)

头文件在stdio.h中,清空输入缓冲区的所有东西(不就清空队列吗qaq).

大佬的话:

fflush 一般用于清除用户前面遗留的垃圾数据,提高代码的健壮性。因为如果是自己编程的话,一般都会按要求输入。但对于用户而言,难免会有一些误操作,多输入了一些其他没有用的字符,如果程序中不对此进行处理的话可能会导致程序瘫痪。所以编程时一定要考虑到各种情况,提高代码的健壮性和容错性。使用 fflush 就可以将用户输入的垃圾数据全部清除。(果然被我想到了qaq)

例如:

#include<stdio.h>
int main(){int num;char flag;while(1){scanf("%d",&num);printf("num = %d\n",num);printf("你还想要吗ntr,Y or N\n");fflush(stdin);scanf("%c",&flag);if(flag == 'Y'){printf("果然很想要嘛qaq\n");}else if(flag == 'N'){break;}else{printf("捣乱是吧!!!!,奖励你一次OVo\n");}}return 0;
}

或许为啥不用getchar()捏

比如我这里第一次输入时写了5adfsadsfads

getchar()不彳亍吧(但是也可以后面在说qaq)

3.用while(getchar() != '\n')

因为不管输入多少无用数据,最后只有一下回车,(回车不是回车符,是换行符\n)

C语言输入缓冲区以及清空输入缓冲区相关推荐

  1. C语言清空输入缓冲区的N种方法对比

    C语言中有几个基本输入函数: //获取字符系列 int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); //获取行系列 ...

  2. C语言清空输入缓冲区的N种方法对比(转)

    C语言中有几个基本输入函数: //获取字符系列int fgetc(FILE *stream);int getc(FILE *stream);int getchar(void);//获取行系列char ...

  3. c语言清空输入缓冲区函数,c语言:C语言清空输入缓冲区在标准输入(stdin)情况 -电脑资料...

    C语言清空输入缓冲区在标准输入(stdin)情况下的使用 程序1: //功能:先输入一个数字,再输入一个字符,输出hello bit#include int main(){int num = 0;ch ...

  4. c语言清空文件内容_C 语言清空输入缓冲区的几个手段

    先观察如下代码和运行情况: 按照控制台提示,输入 value 的值之后,本该能够按照提示继续输入 choice 的值.但是你会发现程序直接跳过了 choice 的输入.而且 choice 原本的值是 ...

  5. C语言清空输入缓冲区

    C语言编程 - 清空键盘输入缓冲区 清空键盘缓冲区很多种方法,如用fflush(stdin); rewind(stdin);等,但是在linux这些都不起作用,还得我今天试了半天都没成功,上网搜了一下 ...

  6. c++清空输入缓冲区_干货 | C++的输入输出方法

    C和C++并没有将输入与输出实现在语言中,而是在类库中实现.作为C的超集,C++继承了C的输入输出方法.同时将输入与输出视为字流.流充当了程序和流源流目标之间的桥梁.本文将介绍C++的输入输出方式,并 ...

  7. 清空输入缓冲区fflush()

    转自:http://blog.csdn.net/21aspnet/article/details/174326 scanf( )函数可以接收输入的换行符,'\n',(asci为10),利用函数fflu ...

  8. C语言编程 - 清空键盘缓冲区

    转载自这里 清空键盘缓冲区很多种方法,如用fflush(stdin); rewind(stdin);等,但是在linux这些都不起作用,还得我今天试了半天都没成功,上网搜了一下发现setbuf(std ...

  9. c语言怎么清空标准输入缓冲区,C语言中如何清空输入输出缓冲区

    C语言中如何清空输入输出缓冲区 答案:5  信息版本:手机版 解决时间 2019-10-06 09:40 已解决 2019-10-05 13:54 C语言中如何清空输入输出缓冲区 最佳答案 2019- ...

最新文章

  1. Java Day 13
  2. mac系统在云服务器地址,mac如何登陆云服务器地址
  3. SLAM Cartographer(17)分支定界闭环检测
  4. mysql每天销售汇总_MySQL - 所有项目的每个总销售额
  5. dm8148 videoM3 link源代码解析
  6. c++ std 方法 取两个数的较大_【数据结构C++】两数交换(4种方法)
  7. centos服务器之间copy文件夹命令,Centos下如何拷贝整个目录命令?Centos下拷贝目录命令的方法...
  8. 学科分类与代码_考研常识 | 2021硕士研究生学科门类、一级学科、二级学科、专业目录及代码查询...
  9. 本科毕业论文引用、编写英文参考文献格式的方法
  10. Horizon client 连接桌面后显示:USB已禁用/USB重定向功能已禁用
  11. html文件转为其他格式文件格式,HTML文件转Word文件格式
  12. HashMap底层原理详解
  13. 一起学爬虫(Python) — 02
  14. Dubbo的failsafe容错策略
  15. 抖音终于活成了自己讨厌的样子
  16. 冒泡排序由浅入深详细分析图解
  17. Kindle 通过邮箱发送电子书
  18. 关于 z-Stack MT层的使用
  19. 一缕黑暗中的火光-----------用例图--------------优雅的建模语
  20. 懒人HTML5笔记-1

热门文章

  1. 用p5.js实现的码绘与手绘的比较(动态)
  2. 网络安全漏洞扫描的工作原理
  3. 2016,我的技术和诗
  4. Cocos Creator 打包WebMobile,实现资源代码分离,部署 cdn
  5. 华为云WeLink助力“智能制造转型计划”—坂田街道专场!
  6. 主芯片瑞昱RTL8852AE组成的WiFi6模块 RW6852
  7. 《一个陌生女人的来信》茨威格
  8. L1-6 吃火锅 (15分)
  9. NFC智能家电解决方案
  10. Python如何实现Word文件批量信息提取与结构化解析