首页 > 其他分享 >while(cin >> x)的说明

while(cin >> x)的说明

时间:2024-05-11 19:19:46浏览次数:9  
标签:返回 运算符 double cin 说明 while 输入

while循环中的cin

在学习C++的过程中,C++ Preimer Plus中经常出现while(cin >> x),为什么可以这么写?cin是一个输入流对象,cin >> x单独使用时,返回结果也是一个cin对象(修改过的)。>>是运算符的重载,其函数原型istream& operator>> (istream& is, typename e);,其中typename可以是char*,int等等。

那么在while(cin >> x >> y)中,其返回值是什么?在while(cin >> x >> y)执行情况如下:

  • 第一个>>运算符从输入流对象cin中提取数据到x中并且返回已经修改过的cin
  • 第二个>>运算符再从cin中提取数据到y中并且返回再次修改过的cin
  • 最后会判断cin的流状态(good、fail、bad、eof),如果流状态为good则表达式cin >> x >> y 返回true,满足while循环执行条件

有语句double x; while(cin >> x),如果实际输入的x与所需的类型不匹配,表达式会返回false,然后退出while循环。

int main()
{
	double x;
	std::cout << "Enter x(q to quit): ";
	while(std::cin >> x)	//当输入字符时退出循环,输入的类型与double不匹配
	{
		...
	}
	return 0;
}

参考:

https://www.delftstack.com/howto/cpp/while-loop-cin-cpp/

https://cplusplus.com/forum/beginner/91641/#:~:text=Yes. It's not about what "cin returns"%2C it,converted to void* which gets converted to bool.

标签:返回,运算符,double,cin,说明,while,输入
From: https://www.cnblogs.com/qianxiaohan/p/18187068

相关文章

  • 【坑】严重性 代码 说明 项目 文件 行 禁止显示状态 错误 NETSDK1141 无法解析位于 E:
    错误严重性代码说明项目文件行禁止显示状态错误NETSDK1141无法解析位于E:\firefox\WPF-Samples-main\WPF-Samples-main\global.json的global.json中指定的.NETSDK版本。DragDropObjectsC:\ProgramFiles\dotnet\sdk\8.0.202\Sdks\Microsoft.NET.Sdk\targets\M......
  • jenkins plugin 开发简单说明
    属于一个简单的学习,基于了官方提供的脚手架,运行一个简单测试插件,了解下开发流程基于脚手架的简单项目创建使用archetype会提示选择的模版mvn-Uarchetype:generate-Dfilter="io.jenkins.archetypes:"构建mvncleanverifymvncleanpa......
  • Cinderella
    Istandbesidethebed,onwhichmymomisweaklying,hopeless.Althoughmyfatherisrich,itstillcan’tsavemymom.Afterthatday,mymomleavesmeforeverandIbecomealone.Sheisburiedinagardenwhereflowersbrightlybloom,Imissmymomeve......
  • python pip的各功能工作中使用说明
    根据pip命令行出来的有如下功能。installInstallpackages.downloadDownloadpackages.uninstallUninstallpackages.freezeOutputinstalledpackagesinrequirementsformat.list......
  • dbt snapshot 处理简单说明
    dbt的snapshot实际上也是一种物化处理,支持与test,docs,稍有不同就是dbt没定义独立的block扩展,以下是一个简单说明dbt目前默认的snapshot是基于了scd2模型使用包含了配置以及snapshot定义,配置支持dbt_project项目级以及独立snapshot定义,对于snapshot是需要指定策略的......
  • dbt fromyaml 上下文方法简单说明
    fromyaml上下文方法可以用来加载yaml内容,属于一个工具类,比如automate-dv就使用了不少方法参考使用{%-setinfo-%}source_model:raw_staging:"raw_customer"derived_columns:SOURCE:"!1"LOAD_DATETIME:"CRM_DATA_INGESTION_TIME"E......
  • Freerdp基本参数说明
    Freerdp基本参数说明语法:xfreerdp[file][options][/v:<server>[:port]] 基础参数: /v:主机IP地址 /u:登录账号 /p:登录密码 /f 全屏显示 /port:3389 端口定义 /version版本查询 /help帮助查询 扩展参数: /bpp:[8/16/24/32] 画面效果和流畅度 /sound:sys:pul......
  • cinder2019#bug
    OpenStack#bug2019888处理对于2023年5月10日之后的所有OpenStack版本,需要将Nova配置为向Cinder发送服务令牌,并让Cinder接收它。这是CVE-2023-2088修复程序所要求的。有关详细信息,请参阅OSSA-2023-003。nova配置vim/etc/nova/nova.conf'''[DEFAULT]'''ser......
  • dremio CatalogMaintenanceService 服务简单说明
    说明此服务是从25.0开始包含的,同时在releasenote中也有说明,以下主要说明下内部实现release信息如下,具体就不翻译了,主要是添加了一个每个任务进行每个view最大保留50个历史信息Addeddailycatalogmaintenancetaskstotrimhistoryofviewstoamaximumof50......
  • CH57x/CH58X/CH59X/CH32F/V208OTA使用说明
    目前提供了两种OTA升级方式,方式一:带库升级;每次升级可以带着库一起进行升级(带库升级适用于flash较大的芯片)方式二:固定库升级;升级时库不会随着升级而升级(适用于flash不够用时)方式一:升级时需要同时烧录这三个固件:(可以使用isp工具同时烧录也可以使用合并工具将三个工程合并后再烧......