c++11 标准模板(STL)(std::basic_istream)(二)

news/2024/4/24 9:09:51/文章来源:https://blog.csdn.net/qq_40788199/article/details/131543962
定义于头文件 <istream>
template<

    class CharT,
    class Traits = std::char_traits<CharT>

> class basic_istream : virtual public std::basic_ios<CharT, Traits>

 类模板 basic_istream 提供字符流上的高层输入支持。受支持操作包含带格式的输入(例如整数值或空白符分隔的字符与字符串)和无格式输入(例如未处理字符和字符数组)。此功能以通过 basic_ios 基类访问的底层 basic_streambuf 类所提供的接口实现。大多数库实现中, basic_istream 有一个非继承数据成员:用于存储 basic_istream::gcount() 所返回的值。


全局对象

标准库提供二个全局 basic_istream 对象。

从标准 C 输入流 stdin 中读取

std::cin, 
std::wcin

extern std::istream cin;

(1)

extern std::wistream wcin;

(2)

 全局对象 std::cinstd::wcin 控制来自实现定义类型(导出自 std::streambuf )的流缓冲区的输入,与标准 C 输入流 stdin 关联。

保证在首次构造 std::ios_base::Init 前或期间初始化这些对象,且它们可用于拥有有序初始化的静态对象的构造及析构函数(只要在定义该对象前包含 <iostream> )。

如果不使用 sync_with_stdio(false), 则从多个线程访问这些对象,进行有格式和无格式输入是安全的。

一旦构造 std::cin , std::cin.tie() 就返回 &std::cout ,类似地 std::wcin.tie() 返回 &std::wcout 。这表示若有任何字符正在等待输出,则任何 std::cin 上的格式化输入操作会强制调用 std::cout.flush() 。

注意

名称中的 'c' 指代“character”( stroustrup.com FAQ ); cin 表示“字符输入”而 wcin 表示“宽字符输入”。

调用示例

#include <iostream>struct Foo
{int n;Foo(){std::cout << "Enter n: "; // 不需要冲入std::cin >> n;}
};Foo f; // static objectint main()
{std::cout << "f.n is " << f.n << '\n';
}

输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_328306.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt6 第一天认识基本模块、附加模块、支持的平台、QML用户界面

文章目录 Qt6 焦点Qt6 核心-基本模块Qt6 附加模块Qt6 支持的平台Qt6 简介Qt6 消化用户界面 Qt6 焦点 Qt 5在很多年前发布&#xff0c;引入了一种新的声明方式来编写令人惊叹的用户界面。从那时起&#xff0c;我们周围的世界发生了很大的变化。 Qt 6将是Qt 5的延续&#xff0c;不…

402 · 连续子数组求和

链接&#xff1a;LintCode 炼码 - ChatGPT&#xff01;更高效的学习体验&#xff01; 题解&#xff1a; 九章算法 - 帮助更多程序员找到好工作&#xff0c;硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 九章算法 - 帮助更多程序员找到好工作&#xff0c;硅谷顶尖IT企业…

项目配置日志的打印目录,输出日志

最近的项目需要在服务器上跑&#xff0c;配个日志方便查看。简单记录一下&#xff0c; resources下新增日志配置的xml文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"10 seco…

idea连接远程MySQL数据库

填写URL&#xff0c;以mysql为例 格式 jdbc:mysql://ip地址:端口号/数据库名 jdbc:mysql://127.0.0.1:3306/ldentification _Information

MATLAB的num2str,把循环变量作为字符串的内容

MATLAB的num2str&#xff0c;把循环变量作为字符串的内容 输入代码&#xff1a; i 2; abc [sdfg,num2str(i),dsfg]运行结果&#xff1a; 解析&#xff1a; MATLAB里面的[ ]是会把元素组合的意思 现在有&#xff1a; a1 3; a2 4; a3 5; 然后我想通过for循环&#xff0c;循…

RV1126笔记三十八:PaddleOCR部署到RV1126

若该文为原创文章&#xff0c;转载请注明原文出处。 一、环境 1、硬件&#xff1a;正点原子RV1126开发板 2、环境&#xff1a;ubuntu16.04 二、模型转换 训练后的模型不能直接使用在RV1126,需要转换一下模型 1、PaddlePaddle的模型转成推理模型 在前面有提过了&#xf…

InnoDB: Waiting for page_cleaner to finish flushing of buffer pool 解决方案

这个是因为linux系统时间&#xff0c;Mysql数据库时间&#xff0c;Mysql日志时间出现不一致导致的。 1、date -R 查询linux系统时间 中国标准时区东八区时区 2、mysql数据库的时间 3、在mysql的配置文件里面&#xff0c;定义好时间&#xff0c;时区一致。 问题解决。

Blender基础入门(0):下载和资源

文章目录 我个人的Blender专栏前言相关资料Blender和C4D如何选择视频资源BlenderBlender官网下载基础设置常用快捷键介绍空格键&#xff1a;跳出选择框ShiftA&#xff1a;跳出添加框选中物体按F9:显示物体属性 Blender能做到什么总结 我个人的Blender专栏 Blender简单教学 前…

【深度学习】受限玻尔兹曼机 (RBM) 初学者指南

一、说明 受限玻尔兹曼机&#xff08;Restricted Boltzmann Machine&#xff0c;RBM&#xff09;是一种基于能量模型的人工神经网络。它只有一个隐层&#xff0c;将输入层和隐层中的每个神经元互相连接&#xff0c;但不同层的神经元之间没有连接。RBM是一种无向的概率图模型&am…

一份非常牛逼的计算机相关技术资料整理

最近发现GitHub上一个非常牛逼的项目。作者收录了一整套 计算机相关的技术资料整理。 收录内容包括&#xff0c;但不仅仅包括&#xff0c;比如比较实用的计算机相关技术书籍&#xff0c;可以在短期之内入门的简单实用教程、一些技术网站以及一些写的比较好的博文。真的得给作者…

2023CCF CAT- 热身赛

NOIP普及组 字符串 排序2017 动态规划 递推 USACO 2001 贪心 牛客小白月赛12 说实话还是很喜欢打比赛&#xff0c;喜欢AC的感觉&#xff0c;但是这玩意咋越来越难了那。。。。。 扎心了&#xff0c;不是~~~~~ 当个爱好吧&#xff0c;还是很喜欢当年打比赛和队友相视一笑的样子…

WebGIS 信息系统-Element项目实战

WebGIS 信息系统-Element项目实战 Element的安装OpenLayers的安装采用直接引用的方式配置开发环境下载Vue文件下载Element文件下载OpenLayers文件 Element的安装 在项目的根目录中&#xff0c;首先按下 Shift鼠标右键&#xff0c;在弹出的右键菜单中选择“在此处打开命令行窗口…

libdrm编译调试

本文主要介绍libdrm的代码下载、编译和调试的工作。新版本的libdrm不再采用configure && make的方式编译&#xff0c;而是改用meson && ninja编译方式&#xff0c;近些年很多多媒体的开源软件包的构建系统有向后者靠拢的趋势&#xff0c;典型的比如gstream及其…

English Learning - L3 作业打卡 Lesson8 Day59 2023.7.4 周二

English Learning - L3 作业打卡 Lesson8 Day59 2023.7.4 周二 引言&#x1f349;句1: I started snowboarding, then I went back to work, then I went back to school.成分划分连读爆破语调 &#x1f349;句2: And just this past February, I won two back to back World C…

视频编码流程 YUV数据编码为H264数据

文章目录 1.视频编码流程2.实战demo3.相关编码知识点讲解1. 参数设置问题:2. 关于av_opt_set3. 关于码流设置 1.视频编码流程 2.实战demo #ifndef MAINBACK_C #define MAINBACK_C #endif // MAINBACK_C #include <stdint.h> #include <stdio.h> #include <stdl…

Go内存分配那些事,就这么简单!

这篇文章主要介绍Go内存分配和Go内存管理&#xff0c;会轻微涉及内存申请和释放&#xff0c;以及Go垃圾回收。 从非常宏观的角度看&#xff0c;Go的内存管理就是下图这个样子&#xff0c;我们今天主要关注其中标红的部分。 本文基于go1.11.2&#xff0c;不同版本Go的内存管理可…

Linux驱动开发:Linux内核启动流程详解

前言&#xff1a;Linux 内核同样作为 Linux 驱动开发的 “三巨头” 之一&#xff0c;Linux 内核的启动流程要比 uboot 复杂的多&#xff0c;涉及到的内容也更多。但秉持着 “知其然知其所以然” 的学习态度&#xff0c;作者将给读者朋友大致的过一遍 Linux 内核的启动流程。(考…

Java csv文件上传下载中的相关转换

目录 一. 需求二. List<Entity>转List<List<String>>2.1 实体类2.2 转换 三. 上传csv文件转List<Map>3.1 csv文件3.2 前台3.3 实体类3.4 转换3.5 效果 一. 需求 &#x1f914;项目中遇到了两个需求 1.查询数据库&#xff0c;得到List<Entity>这…

初阶C语言———操作符详解(2)

hello&#xff0c;我们又见面了&#xff0c;今天我们把操作符这一章节完结&#xff0c;那让我们一起来学习吧 逻辑操作符 &&逻辑与 ||逻辑或 这里我们要区分按位与和按位或还有逻辑与和逻辑或的区分。 1&2----->0 1&&2---->1 1|2----->3 1||2---…

嵌入式_Keil (MDK - ARM) 的调试步骤

目录 1. 编译 调试 2. 复位 全速运行 3. 单步调试 4. 逐步调试 5. 跳出调试 6. 运行到光标处 7. 跳转到暂停行 8. 调试窗口 首先为什么需要在 MDK 中进行程序的调试呢&#xff1f; 在 MDK 中进行程序调试的主要目的是识别和解决程序中的问题和错误。 比如说找到程序中…