【C++知识总结2】C++里面的小配角cout和cin

server/2024/11/28 3:07:40/

一、引入

第一个关于输入输出的C++代码

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中
using namespace std;
int main()
{cout<<"Hello world!!!"<<endl;return 0;
}

1. 使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std。
2. cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,也可以使用\n来输出换行,他们都包含在包含<iostream >头文件中。
3. <<是流插入运算符,>>是流提取运算符。
4. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
值得注意的是:在早期,标准库将所有功能实现都在全局域中,并在以.h为后缀的头文件中声明。使用时,只需要包含相应的头文件即可。然而,后来这些实现被迁移到了std命名空间下。为了与C头文件区分开,并确保正确地使用命名空间,C++头文件被规定为不带.h后缀。值得注意的是,在一些旧的编译器(如vc 6.0)中,仍然支持<iostream.h>这种格式,但后续的编译器已经不再支持。因此,笔者建议在编写C++代码时,应使用<iostream>并使用std命名空间的方式来确保兼容性和规范性。

下面详细介绍C++的输入输出

二、什么时输入和输出

C++的I/O操作是在流中进行的,流本质上是字节的序列。当字节流从外部设备(如键盘、磁盘驱动器、网络连接等)流向内存时,我们称之为输入操作。相反,当字节流从内存流向外部设备(如显示屏、打印机、磁盘驱动器、网络连接等)时,我们称之为输出操作

I/O 库头文件

头文件函数和描述
<iostream>该文件明确界定了cin、cout、cerr与clog这些对象,它们各自对应着标准输入流、标准输出流、非缓冲的标准错误流,以及缓冲的标准错误流。
<iomanip>该文件通过所谓的参数化的流操纵器,比如 setw 和 setprecision,来声明对执行标准化 I/O 有用的服务。
<fstream>该文件为用户控制的文件处理声明服务。

标准输出流(cout)

预定义的对象 cout 是 iostream 类的一个实例。cout 对象"连接"到标准输出设备,通常是显示屏。cout 是与流插入运算符 << 结合使用的,如下所示:

#include <iostream>using namespace std;int main( )
{char str[] = "Hello C++";cout << "输出的字符串是 : " << str << endl;
}

C++ 编译器根据要输出的变量的数据类型,自动选择合适的流插入运算符来显示对应的值。<< 运算符被重载以输出内置类型(如整型、浮点型、double型、字符串和指针)的数据项。如上例所示,流插入运算符 << 可以在一个语句中多次使用,以连续输出多个数据项。endl 则用于在行末添加一个换行符,从而实现换行。

标准输入流(cin)

预定义的对象 cin 是 iostream 类的一个实例。这个对象被关联到标准输入设备,通常情况下指的是键盘。通过使用流提取运算符 >>,我们可以与 cin 对象进行交互,如下所示:

#include <iostream>using namespace std;int main( )
{char name[50];cout << "请输入您的名称: ";cin >> name;cout << "您的名称是: " << name << endl;}

C++ 编译器根据要输入值的数据类型,选择合适的流提取运算符来提取值,并把它存储在给定的变量中。流提取运算符 >> 在一个语句中可以多次使用,如果要求输入多个数据。

值得注意的是: cin 输入的时候是按照空白字符(不管是换行还是回车)分割的。

如果要按空格分割直到回车:

while( cin >> a ){//...if(cin.get()=='\n'){break;}
}
//cin.get() 则是直接读取,不忽略空白字符缓冲。

 今天的分享就到这啦😉 

如果我的文章对您有帮助,

请 “点赞” “收藏” “关注” 一键三连哦!

想了解更多知识请前往重生之我在VS写bug

如果以上内容有什么问题,欢迎留言,大家一起学习,共同进步。


http://www.ppmy.cn/server/145505.html

相关文章

c++中操作数据库的常用函数

在C中操作数据库&#xff0c;尤其是MySQL数据库&#xff0c;主要通过MySQL提供的C API或MySQL Connector/C库来实现。这些库提供了一系列的函数&#xff0c;使得开发者能够在C应用程序中执行数据库的连接、查询、更新、删除等操作。以下是C中操作MySQL数据库的一些常用函数&…

InfluxDB时序数据库笔记(一)

InfluxDB笔记一汇总 1、时间序列数据库概述2、时间序列数据库特点3、时间序列数据库应用场景4、InfluxDB数据生命周期5、InfluxDB历史数据需要另外归档吗&#xff1f;6、InfluxDB历史数据如何归档&#xff1f;7、太麻烦了&#xff0c;允许的话选择设施完备的InfluxDB云产品吧8、…

【论文复现】偏标记学习+图像分类

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 偏标记学习图像分类 概述算法原理核心逻辑效果演示使用方式参考文献 概述 本文复现论文 Progressive Identification of True Labels for Pa…

java虚拟机——频繁发生Full GC的原因有哪些?如何避免发生Full GC

什么是Full GC Full GC&#xff08;Full Garbage Collection&#xff09;是Java垃圾收集过程中的一种形式&#xff0c;它涉及整个堆内存&#xff08;包括年轻代和老年代&#xff09;以及方法区的垃圾收集。Full GC是一个相对重量级的操作&#xff0c;因为它需要遍历和回收整个…

HarmonyOS 3.1/4项目在DevEco Studio 5.0(HarmonyOS NEXT)版本下使用的问题

有读者在使用《鸿蒙HarmonyOS应用开发入门》书中的源码时&#xff0c;遇到了问题。本文总结问题的原因及解决方案。 有读者在使用《鸿蒙HarmonyOS应用开发入门》书中的源码时&#xff0c;遇到了问题。本文总结问题的原因及解决方案。 问题原因 这些问题&#xff0c;本质上是…

windows10下3DGS环境配置

前言 3DGS(3D Gaussian Splatting)是由法国蔚蓝海岸大学的Kerbl, Bernhard等人在《3D Gaussian Splatting for Real-Time Radiance Field Rendering【SIGGRAPH 2023】》论文地址一文中提出了一种 极短训练时间呢就能达到最高视觉质量的方法&#xff0c;而且可以保证在高质量、实…

在 Taro 中实现系统主题适配:亮/暗模式

目录 背景实现方案方案一&#xff1a;CSS 变量 prefers-color-scheme 媒体查询什么是 prefers-color-scheme&#xff1f;代码示例 方案二&#xff1a;通过 JavaScript 监听系统主题切换 背景 用Taro开发的微信小程序&#xff0c;需求是页面的UI主题想要跟随手机系统的主题适配…

C语言:函数

1. 函数的基本概念与用途 函数是 C 语言程序的基本构建块。它将一个大型程序分解为较小的、可管理的部分&#xff0c;每个部分负责特定的任务&#xff0c;这样可以提高代码的可读性、可维护性和可复用性。例如&#xff0c;在一个涉及数学计算、输入输出处理和数据存储的复杂程…