清除C / C ++中的输入缓冲区,妈妈再也不用担心我的学习

晓晓 171 0

搬瓦工官网(国内无法打开,需要梯子)https://bandwagonhost.com
搬瓦工官网中国镜像站https://bwh81.net(搬瓦工官方网站,放心访问)
搬瓦工官方中文网https://bwh86.net
搬瓦工官网所有方案以及库存监控页面https://bwh86.net/monitor
最新搬瓦工最大优惠力度优惠码(循环优惠6.58%):BWHNCXNVXV
搬瓦工新用户注册和图文购买教程点击查看

什么是缓冲区?
临时存储区称为缓冲区。所有标准输入和输出设备都包含一个输入和输出缓冲区。在标准C / C ++中,流被缓冲,例如在标准输入的情况下,当我们按键盘上的键时,它不会发送到您的程序,而是由操作系统缓冲,直到分配给该时间为止。

它如何影响编程?
在各种情况下,您可能需要清除不需要的缓冲区,以便在所需容器中而不是先前变量的缓冲区中获取下一个输入。例如,对于C遇到“ scanf()”后,我们需要输入一个字符数组或字符,对于C ++,遇到“ cin”语句后,我们需要输入一个字符数组或一个字符串,那么我们需要清除输入缓冲区,否则所需的输入将被先前变量的缓冲区占用,而不是所需的容器。在第一个输入之后在输出屏幕上按“ Enter”(回车),因为先前变量的缓冲区为新容器的空间(因为我们没有清除它),程序将跳过以下容器输入。

如果是C编程

输入:girl  a      输出:girl

如果是C ++

输入:4 girl     输出:4

在上述两个代码中,输出均未按要求打印。原因是占用了缓冲区。“ \ n”字符保留在缓冲区中,并作为下一个输入读取。

如何解决?

如果是C:

1.使用“ while((getchar())!='\ n'); ”:键入“ while((getchar())!='\ n');” 读取缓冲区字符直到结尾并丢弃它们(包括换行符),并在“ scanf()”语句清除输入缓冲区并允许输入所需的容器之后使用它们。

2.使用“ fflush(stdin)”:在“ scanf()”语句之后键入“ fflush(stdin)”也将清除输入缓冲区,但是避免使用它,并且根据C ++,对于输入流,它被称为“未定义” 11个标准。

如果是C ++:

1.使用“ cin.ignore(numeric_limits :: max(),'\ n'); ”:-输入“ cin.ignore(numeric_limits :: max(),'\ n');” 在“ cin”语句之后,将丢弃输入流中的所有内容,包括换行符。

2.使用“ cin.sync()”:在“ cin”语句之后键入“ cin.sync()”会丢弃缓冲区中剩余的所有内容。尽管“ cin.sync()”并非在所有实现中都有效(根据C ++ 11和更高版本的标准)。

3.使用“ cin >> ws”:在“ cin”语句之后键入“ cin >> ws”,告诉编译器忽略缓冲区,并丢弃字符串或字符数组实际内容之前的所有空格。

当然,还有别的方法,这个就看你们的了。这里只是给你们提出几个解决办法。

领取学习资料及教程+QQ群560434603

搬瓦工机房方案整理

搬瓦工目前提供了4个方案,包括搬瓦工KVM方案搬瓦工CN2 GT方案搬瓦工CN2 GIA-E方案搬瓦工香港方案,每种方案有多种套餐配置,详细的配置和价格整理如下:
套餐名称 CPU 内存大小 硬盘容量 每月流量 带宽 价格/年 购买链接
搬瓦工CN2-E限量版(搬瓦工补货通知群(禁言,仅推送):903230558)
CN2 GIA LIMITED EDITION 1核 1 GB 10 GB 500 GB 1 Gbps $89.99 立即购买
搬瓦工CN2 GT方案
CN2 1核 1024 MB 20 GB 1000 GB 1 Gbps $49.99 立即购买
CN2 1核 2048 MB 40 GB 2000 GB 1 Gbps $99.99 立即购买
CN2 2核 4096 MB 80 GB 3000 GB 1 Gbps $199.99 立即购买
CN2 2核 8 GB 160 GB 5000 GB 1 Gbps $399.99 立即购买
CN2 3核 16 GB 320 GB 8000 GB 1 Gbps $799.99 立即购买
CN2大流量 3核 16 GB 320 GB 12000 GB 1 Gbps $899.99 立即购买
CN2大流量 3核 16 GB 320 GB 16000 GB 1 Gbps $1299.99 立即购买
搬瓦工CN2 GIA-E方案(可选搬瓦工DC9 CN2 GIA,搬瓦工DC6 CN2 GIA,搬瓦工日本大阪软银线路)
CN2 GIA ECOMMERCE 2核 1 GB 20 GB 1000 GB 2.5 Gbps $169.99 立即购买
CN2 GIA ECOMMERCE 3核 2 GB 40 GB 2000 GB 2.5 Gbps $299.99 立即购买
CN2 GIA ECOMMERCE 4核 4 GB 80 GB 3000 GB 2.5 Gbps $549.99 立即购买
CN2 GIA ECOMMERCE 6核 8 GB 160 GB 5000 GB 5 Gbps $879.99 立即购买
CN2 GIA ECOMMERCE 8核 16 GB 320 GB 8000 GB 5 Gbps $1599.99 立即购买
CN2 GIA ECOMMERCE 10核 32 GB 640 GB 10000 GB 10 Gbps $2759.99 立即购买
CN2 GIA ECOMMERCE 12核 64 GB 1280 GB 12000 GB 10 Gbps $5399.99 立即购买
搬瓦工香港方案
香港CN2 GIA 2核 2048 MB 40 GB 500 GB 1 Gbps $899.99 立即购买
香港CN2 GIA 4核 4096 MB 80 GB 1000 GB 1 Gbps $1559.99 立即购买
香港CN2 GIA 6核 8192 MB 160 GB 2000 GB 1 Gbps $2999.99 立即购买
香港CN2 GIA 6核 16384 MB 320 GB 4000 GB 1 Gbps $5899.99 立即购买
搬瓦工日本方案
日本CN2 GIA 2核 2048 MB 40 GB 500 GB 1.2 Gbps $899.99 立即购买
日本CN2 GIA 4核 4096 MB 80 GB 1000 GB 1.2 Gbps $1559.99 立即购买
日本CN2 GIA 6核 8192 MB 160 GB 2000 GB 1.2 Gbps $2999.99 立即购买
日本CN2 GIA 6核 16384 MB 320 GB 4000 GB 1.2 Gbps $5899.99 立即购买
搬瓦工KVM方案
KVM 2核 1024 MB 20 GB 1 TB 1 Gbps $49.99 立即购买
KVM 3核 2 GB 40 GB 2 TB 1 Gbps $99.99 立即购买
KVM 4核 4 GB 80 GB 3 TB 1 Gbps $199.99 立即购买
KVM 5核 8 GB 160 GB 4 TB 1 Gbps $399.99 立即购买
KVM 6核 16 GB 320 GB 5 TB 1 Gbps $799.99 立即购买
KVM 7核 24 GB 480GB 6 TB 1 Gbps $1,199.99 立即购买

标签: 国外云服务器 香港服务器 美国服务器 搬瓦工VPS

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~