博客
关于我
cin与cout详解
阅读量:484 次
发布时间:2019-03-07

本文共 1449 字,大约阅读时间需要 4 分钟。

std::cout详解

// std::cout是C++标准库中的一个概念类,用于向标准输出流写入数据。在C++中,标准输出流默认为键盘的显示终端。你可以直接使用cout来输出各种数据类型的内容。    // 例如:    std::cout << "hello world" << std::endl;    // 如果你希望直接使用cout和cin,可以在顶部文件中加入以下行:    using namespace std;    // std::前缀表示标准库命名空间, ::是作用域运算符,用于指定作用域。    // cout是一个内置的对象,用于表示标准输出流。你可以通过<
<运算符将内容写入cout对象中。 std::endl是一个常量,表示以字符串结尾的换行符。它是一个模板函数,用于强制更新输出缓冲区。 当你调用std::endl时,系统会立即将输出缓冲区的内容写到屏幕上,而不是等到缓冲区被填满后才会自动刷新。 因此,你需要清楚了解std::endl的作用机制:

std::endl的工作原理
  • 调用std::endl会向输出缓冲区添加内容并执行缓冲区刷新操作。
  • 系统会在以下情况下刷新缓冲区:
    • 缓冲区满了
    • 程序执行到main函数的return语句
    • 主动调用std::endl
// 当缓冲区被刷新时,内容会被输出到屏幕上。系统通常会在有可读事件(例如키盘输入)时检查输出缓冲区,并立即刷新。 // 示例:
std::cout << "i = " << i << std::endl;

std::cin详解

// std::cin是一个与std::cout同样重要的标准输入流对象。在C++中,你可以通过cin读取输入的数据。    // 例如:    std::cout << "请输入两个整数:" << std::endl;    int a, b;    std::cin >> a >> b;    std::cout << "a + b = " << a + b << std::endl;    // cin是一个概念类,其行为类似于标准输入流。你可以通过>>运算符读取输入数据。    // 例如:    std::cin >> "字符串输入";    // 这将尝试将输入的全字符串读取到变量中。    // 
注意:std::cin >> 会自动处理类型转换,对于不匹配的输入,会初始化为0或默认值。例如,如果输入一个非数字字符,会被忽略直到下一个有效字符出现为止。
// 与cout一样,std::cin可以直接返回自己,支持链条操作符。 // 例如: std::cin >> a >> b >> c; // 这样可以在单一行代码中读取多个值。 //
建议在读取输入时,先检查std::cin是否成功读取数据(即检查operator>>(bool&)的返回值是否为true)。这可以避免因为输入错误或空闲输入而遇到未定义行为的问题。
关键词:C++
关键词:标准输入流
关键词:标准输出流
关键词:操作符重载

转载地址:http://lakcz.baihongyu.com/

你可能感兴趣的文章
Oracle:ORA-00911: 无效字符
查看>>
Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
查看>>
Tensorflow.python.framework.errors_impl.ResourceExhaustedError:无法分配内存[操作:AddV2]
查看>>
TCP基本入门-简单认识一下什么是TCP
查看>>
tableviewcell 中使用autolayout自适应高度
查看>>
Symbolic Aggregate approXimation(SAX,符号聚合近似)介绍-ChatGPT4o作答
查看>>
Orcale表被锁
查看>>
svn访问报错500
查看>>
sum(a.YYSR) over (partition by a.hy_dm) 不需要像group by那样需要分组函数。方便。
查看>>
ORCHARD 是什么?
查看>>
Struts2中使用Session的两种方法
查看>>
Stream API:filter、map和flatMap 的用法
查看>>
STM32工作笔记0032---编写跑马灯实验---寄存器版本
查看>>
order by rand()
查看>>
SSM(Spring+SpringMvc+Mybatis)整合开发笔记
查看>>
Orderer节点启动报错解决方案:Not bootstrapping because of 3 existing channels
查看>>
org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement profile
查看>>
sql查询中 查询字段数据类型 int 与 String 出现问题
查看>>
org.apache.commons.beanutils.BasicDynaBean cannot be cast to ...
查看>>
org.apache.dubbo.common.serialize.SerializationException: com.alibaba.fastjson2.JSONException: not s
查看>>