首页 > 编程语言 >C++语法基础之输入输出(易理解巨详细)

C++语法基础之输入输出(易理解巨详细)

时间:2024-08-02 20:26:50浏览次数:9  
标签:std 输出 输入输出 C++ 语法 Streams 输入

Unit 1 C++语法基础之基本输入输出
本次分享属于C++语法基础系列课,标准输入输出的理解和使用


C++语法基础之输入输出


标准输入输出

介绍

程序的意义是,利用交互进行效果的展示,对于初学者,我们要进行数据的交互,离不开输入和输出(我们如何给计算机输入?如何拿到计算机输出的效果?带着这两个问题,我们开始探索吧!)

(一)输入输出流(概念比较抽象,可先理解代码,回头进行理解性记忆)

1、概念

输入输出流(Input/Output Streams,简称I/O Streams)是计算机科学中的一个基本概念。
用于在程序与外部世界(如文件、内存、网络、键盘、显示屏等)之间传输数据。它们提供了一种抽象的方式来处理数据的读取(输入)和写入(输出),使得程序不必关心数据具体是如何存储或传输的。
在C++中,输入输出流(I/O Streams)是通过一系列类来实现的,这些类封装了数据的输入和输出操作。C++标准库中的 <iostream>(我们重点讲解)<fstream><sstream>等头文件提供了丰富的流类,用于处理不同的输入输出场景。

2、输入流(Input Streams)

在C++中,输入流(Input Streams)和输出流(Output Streams)是通过一系列类来抽象化数据的读取和写入过程的。这些类定义在C++标准库的不同头文件中,但主要的是<iostream><fstream><sstream>,它们分别用于处理标准输入输出、文件输入输出和字符串输入输出。

输入流用于从某个数据源(如文件、内存中的字符串、用户输入等)读取数据。在C++中,输入流类通常是继承自std::istream或其派生类(如std::ifstream用于文件输入)。输入流提供了一系列的成员函数和操作符重载(如>>),用于从数据源中读取数据。

  • std::cin:是std::istream类的一个实例,用于从标准输入(通常是键盘)读取数据。
  • 在设定好命名空间后,无需每个指令加 std:
#include <iostream>
using namespace std;
int main(){
	int a;
	cin >> a;  //无需std:cin
	return 0;
}

3、输出流(Output Streams)

输出流用于将数据写入到某个目的地(如文件、内存中的字符串、标准输出设备等)。在C++中,输出流类通常是继承自std::ostream或其派生类(如std::ofstream用于文件输出)。输出流也提供了一系列的成员函数和操作符重载(如<<),用于将数据写入到目的地。

  • std::cout:是std::ostream类的一个实例,用于向标准输出(通常是屏幕)写入数据。
  • 在设定好命名空间后,无需每个指令加 std:
#include <iostream>
using namespace std;
int main(){
	cout << "一个数据";  //无需std:cout
	return 0;
}

以上概念过于晦涩,大家重复观看记忆,接下来我们上代码,进行实战指导


(二)标准输出

1、输入

(1)流插入操作符

定义: 向流中添加数据的操作叫做插入操作,其对应的运算符就称为插入操作符。
符号:>>
作用: 将数据向标准输出设备进行输出,如终端(黑窗口)。

(2)标准输入流应用
  • cin >> a >> b >> c;表示依次输入三个值,分别赋值给a、b、c三个变量(变量已存在);
  • 回车键空格键tab键分割相邻的两个数据,全部输入完按回车键结束;
  • 以上案例以三个变量为例,变量的数量不仅限于3个。

2、输出

(1)流提取操作符

定义: 从流中获取数据的操作叫做提取操作,其对应的运算符就称为提取操作符。
符号:<<
作用: 从标准输入设备获取输入数据,进行赋值。

(2)标准输出流应用
  • cout << 表达式1 << 表达式2 << 表达式3;表示依次输出表达式1、表达式2、表达式3(之间无空格输出);
  • cout << a << b << b;表示依次输出a、b、c三个变量的值(之间无空格输出);
  • cout << 表达式1 << " " << 表达式3;表示依次输出表达式1、空格、表达式3(之间有空格输出);
  • cout << 表达式1 << endl << 表达式3;表示依次输出表达式1、换行、表达式3(两个表达式之间换行输出);
  • 回车键空格键tab键分割相邻的两个数据,全部输入完按回车键结束;
  • 以上案例以三个变量为例,变量的数量不仅限于3个。

3、代码示例

#include <iostream>
using namespace std;

int main(){
	int a;
	double b;
	cin >> a >> b;
	cout << a << b;
	// 输入 10 2.5
	// 输出结果为 102.5
	cout << a << " " << b;
	// 输出结果为 10 2.5
	cout << a << endl << b;
	/* 
	输出结果为 
	10
	2.5
	*/
	/*
	输入输出,可多行使用
	cin >> a;
	cin >> b;
	等价于 cin >> a >> b;
	同理,
	cout << "你好 " ;
	cout << endl;
	cout << "谢谢 ";
	等价于cout << "你好" << endl << "谢谢";
	*/
	return 0;
}

总结

标准输入输出比较简单,无基础者多练多写,有基础者重攻概念,理解缓存机制(初学者不讲解,后续进行缓存区讲解)。

标签:std,输出,输入输出,C++,语法,Streams,输入
From: https://blog.csdn.net/weixin_42362785/article/details/140805310

相关文章

  • C++中const关键字的作用?
    const关键字的作用?const主要用来定义常量和保护变量不被修改:定义常量:使用const可以定义一个不可修改的常量,const常量的默认链接方式是内部链接(只有该源文件可见),可以将其定义在头文件中而不会引起重复定义问题,每个包含该头文件的源文件都各自拥有一个const常量的副本。//......
  • 【C++】引用和指针的不同点
    引用和指针的不同点:(从使用的角度去对比,按自己的理解的角度去梳理,硬记很难记全,虽然不赢记大概率也记不全)1.引用概念上定义一个变量的别名,指针存储一个变量地址。2.引用在定义时必须初始化,指针没有要求。3.引用在初始化时引用一个实体后,就不能再引用其他实体;而指针可以在......
  • 【C++】运算符重载
    一、示例如果我想实现以下代码,按照下面的写法是不能正常运行的。classPerson{public:intm_A;intm_B;};Personp1;p1.m_A=10;p1.m_B=10;Personp2;p2.m_A=10;p2.m_B=10;Personp3;p3=p1+p2;按照以上学过的内容,可以自己写成员函数,实......
  • C++高级功能
    Lambda匿名函数[只读列表](参数列表){函数体}例如:sort(a+1,a+n,[](constData&x,constData&y){returnx.val<y.val;}constintk=5;autocalc=[k](constint&x){returnx*k;}template模板在struct/namespace/函数前加入template<typ......
  • Windows图形界面(GUI)-MFC-C/C++ - 静态文本框(Static Text) - CStatic
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​链接点击跳转博客主页目录静态文本框(StaticText)-CStatic基本概念成员函数示例代码静态文本框(StaticText)-CStatic基本概念静态文本框是一种用于显示文本的控件,用户不能编辑其中的文本。静态文本框......
  • window配置onnxruntime,运行c++版本
    为了使用ONNX-Runtime-Inference这个项目,但是我缺少onnxruntime这个库,网上找了很多教程,但是大多数都是关于linux的,这里简单记录一下我的配置流程找到onnxruntime的release版本开始想着自己去找源码编译,发现这对于新手来说,是个坑,因为源码里面有些库是缺失的,需要自己去下载,并更改......
  • crontab在linux中的语法规则
    总结:  分钟小时日月周数值范围 0~590~231~311~120~7(0和7都表示周日);MON~SUN每* 每分钟每小时每天每月 区间-a-b:从a分到b分a-b:从a点到b点a-b:从a号到b号a-b:从a月到b月a-b:从周a......
  • 【C++】学习笔记——智能指针
    文章目录二十一、智能指针1.内存泄漏2.智能指针的使用及原理RAII智能指针的原理auto_ptrunique_ptrshared_ptrshared_ptr的循环引用weak_ptr删除器未完待续二十一、智能指针1.内存泄漏在上一章的异常中,我们了解到如果出现了异常,会中断执行流,跳转到catch处。但......
  • 【C++】学习笔记——特殊类的设计
    文章目录二十二、特殊类的设计1.请设计一个类,不能被拷贝2.请设计一个类,只能在堆上创建对象3.请设计一个类,只能在栈上创建对象4.请设计一个类,不能被继承5.请设计一个类,只能创建一个对象(单例模式)未完待续二十二、特殊类的设计1.请设计一个类,不能被拷贝拷贝......
  • 【C++庖丁解牛】C++特殊类设计 | 单例模式
    ......