稍微记录一下今天刷题遇到的C++问题

看到使用while(cin >> s);来读取最后一个字符串。百度了一下发现cin以空格,制表符和回车为终止依据。也就是说我输入"abc 123 bca 321"+回车,当读到“abc ”时赋值abc给s。直到遇见'\0'也就是EOF,跳出循环。如此我们知道cin>>s返回值其实就是读到的每一个字符,一旦遇到EOF就返回0,其他都是非零。

缓存区问题

当敲下回车后,键盘输入的内容被送到缓存区,如果有以下代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
std::string str,str2;
std::cin >> str;
std::cout << str; int a = 3, b = 4;
cout << a + b << endl;
std::cin >> str2;
std::cout << str2; return 0;
}

当我们输入"abc 123"+回车后

输出是abc 7 123,发现123仍然被str2获取到了,说明缓存区中的数据会一直保留,除非清空缓存区。

cin和缓存区问题的更多相关文章

  1. 关于cin的缓存区影响效果

    1. 当缓冲区中有残留数据时,cin函数会直接去读取这些残留数据而不会请求键盘输入.而且,回车符也会被存入输入缓冲区中. int num{}; while(cin>>num) cout&l ...

  2. node(Buffer缓存区)

    // 创建buffer类 var buf=new buffer(10); var buf=new buffer([10,20,30,40]); var buf=new buffer("www ...

  3. ACM/ICPC 之 优先级队列+设置IO缓存区(TSH OJ-Schedule(任务调度))

    一个裸的优先级队列(最大堆)题,但也有其他普通队列的做法.这道题我做了两天,结果发现是输入输出太过频繁,一直只能A掉55%的数据,其他都是TLE,如果将输入输出的数据放入缓存区,然后满区输出,可以将I ...

  4. git --如何撤销已放入缓存区(Index区)的修改

    修改或新增的文件通过 git add --all 命令全部加入缓存区(index区)之后,使用 git status 查看状态(git status -s 简单模式查看状态,第一列本地库和缓存区的差异 ...

  5. IntelliJ IDEA修改Output输出缓存区大小【应对:too much output to process】

    IntelliJ IDEA默认的Output输出缓存区大小只有1024KB,超过大小限制的就会被清除,而且还会显示[too much output to process],可通过如下配置界面进行修改O ...

  6. 【MINA】缓存区ByteBuffer和IOBuffer你要了解的常用知识

    mina中IOBuffer是Nio中ByteBuffer的衍生类,主要是解决Bytebuffer的两个不足 1.没有提供足够灵活的get/putXXX方法 2.它容量固定,难以写入可变长度的数据 特点 ...

  7. csapp lab3 bufbomb 缓存区溢出攻击 《深入理解计算机系统》

    这个实验主要是熟悉栈,和了解数据缓存区溢出的问题. 数据缓存区溢出:程序每次调用函数时,会把当前的eip指针保存在栈里面,作为被调用函数返回时的程序指针.在被调用程序里面,栈是向下增长的.所有局部变量 ...

  8. Java NIO------基础理论之缓存区

    1.概述:NIO我的理解就是 New IO,是API1.4里提供的新的API,为所有的原始类型做缓存支持. NIO主要的核心组成部分: Buffer(缓存) Channels(通道) Selector ...

  9. 使用pg_buffercache查看缓存区缓存

    PG提供了一个扩展pg_buffercache来查看缓存区的内容. create database test; CREATE DATABASE create extension pg_bufferca ...

  10. JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder

    JAVA之旅(十七)--StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder 讲完String,我们来聊聊他的小兄弟 一.StringB ...

随机推荐

  1. Linux 第十节( APACHE )

    Apache   基金会,软件 http 协议 httpd  软件包 vim /etc/httpd/conf/httpd.conf   //网站配置主文件 systemctl restart http ...

  2. Python安装及配置教程

    安装教程 一.python3.6安装步骤 1.首先我们移步官网,下载最新版本的python-3.6.0.点我,我把你传送到python官网 在DownLoad下拉框中点击Windows,选择要下载的文 ...

  3. QE11 / QE51N 界面太小问题

    修复后界面是,修复前常规页签中的数据只能显示4行,需要的note是 2639352 , SNOTE 进行打补丁就好  note是 2639352

  4. windows远程桌面之前用于连接到xxx的凭据无法工作

    使用windows远程桌面连接时报错提示: 之前用于连接到xxx的凭据无法工作 确认输入的用户名密码没有问题 解决方法: 打开gpedit.msc组策略管理,依次找到 计算机配置 > windo ...

  5. zabbix5.2+mysql+ubuntu20.4

    服务端 0.初始化机器 1.mysql安装 # apt-get install mysql-server # apt update 根据提示一步一步确认,要求输入的密码是创建管理员的密码 2.安装za ...

  6. 常用IBatis属性

    <?xml version="1.0" encoding="utf-8" ?> <sqlMap namespace="GoodDet ...

  7. GrADS CTL文件 VARS字段

    GrADS可以读取GRIB格式的再分析数据,如ERA5,CFSR,CRA40等.对于这些数据,借助grib2ctl/g2ctl程序,生成描述文件(*.ctl文件),再通过gribmap命令,生成索引文 ...

  8. 如何在Debian10镜像中设置Nginx引擎模块

    目前,我们较多的服务器WEB环境都是用的Nginx引擎,我们采用服务器的目的是可以获取到更多的资源,而且建站数量是不受限制的.我们可以根据自己需要配置Nginx,可以自定义特定域的设置,允许您在单个服 ...

  9. python装饰器中高级用法(函数加参)

    在上一章我们说到装饰器的原则和基本用法,下面来补充一下:如果函数加参,装饰器该如何变化 1,还是用上一章的源代码 2,给test2加个参数name 报错了,本来给test2加一个name参数,为了实现 ...

  10. ctfshow web入门41

    这个题过滤了$.+.-.^.~使得异或自增和取反构造字符都无法使用,同时甚至过滤了字母和数字. 但是特意留了个或运算符|. 由此我们可以尝试从ascii为0-255的字符中,找到用或运算能得到我们可用 ...