C++基础与深度解析02——

news2024/11/27 22:36:34

0. 前言

接上文C++基础与深度解析01,本篇主要介绍C++的输入输出流,如下

在这里插入图片描述
在这里插入图片描述

1. 基础概念

1.1头文件

通常,在一个 C++ 程序中,只包含两类文件—— .cpp 文件和 .h 文件。其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码;而 .h 文件则被称作 C++ 头文件,里面放的也是 C++ 的源代码。
当想在test01.cpp中使用test01.h文件中定义的函数或者结构体等时,需要在test02.cpp中添加#include<test02.h>文件,更多的时候,通过此方法调用C++函数库中的函数和结构体等。

1.2 命名空间

在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称都将存在于全局 作用域 中,可能会导致很多的命名冲突。 使用命名空间的目的是对标识符的名称进行本地化,归类于特定的空间,以避免命名冲突或名字污染。
举个例子,通常我们想使用cout输出时,代码为

#include<iostream>
int main()
{
	std::cout << "Hello" << std::endl;//表示调用命名空间std下的函数cout;
	return 0;
}

可以通过关键词 namespace来简化代码

#include<iostream>
using namespace std;
int main()
{
	cout << "Hello" << endl;
	return 0;
}

对于较长的命名空间(例如:nodespacelist),也可以起别名,比如 namespace ns1 = nodespacelist ;

2.iostream

C++标准库提供的IO接口,用于与用户交互。
输入流:cin(键盘输入、文件输入)
输出流:coutcerrclog(屏幕输出、文件输出)

2.1 简单代码示例

#include<iostream>
using namespace std;
int main()
{
	int age;
	cout << "How old are you?" << endl;
	cin >> age;//键盘输入年龄
	cout << "You are " << age << endl;
}

2.2三种输出流区别

cout: 标准输出流
cerr: 标准错误流(非缓冲):和cout的区别是,其必须显示在屏幕上,可以在不占用内存的情况下输出错误信息。
clog:标准错误流(缓冲)
:和cerr的区别是cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出,在大量信息输出时表现出较快速度。
endl 是一个特殊值,称为操纵符,将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区。通过刷新缓冲区,用户可立即看到写入到流中的输出。同样flash也可以刷新缓冲区。

2.3 cin文件输入和cout文件输出(作业)

name.txt 如下

zhangsan
lisi
wangwu
mike
xiaofang
Ellie

现通过屏幕显示和键盘依次输入个人的姓名,并且输出到新的文件name_age.txt,格式如下

zhangsan 12
lisi 13
wangwu 34
mike 16 
xiaofang 15
Ellie 45
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
	ifstream infs("E:\\test01.txt");
	ofstream oufs("E:\\test02.txt");
	if (!infs.good())
	{
		cout << "Input error!" << endl;
		return 0;
	}
	string line;
	float age = 0;
	while (getline(infs, line))
	{
		cout << "Please input the age of " << line << endl;
		cin >> age;
		oufs << line << " "<<age << endl;
	}
	return 0;

}

2.4 其他输入输出方法

**printf**函数:使用起来比较直观简洁,但是容易写错;
C++ 20格式化库: 现如今编译工具支持比较不好。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】STL——vector的有关空间的函数介绍和使用、size和capacity函数、resize和reserve函数

文章目录 1.vector的使用2.vector空间增长问题&#xff08;1&#xff09;size 获取数据个数&#xff08;2&#xff09;capacity 获取容量大小&#xff08;3&#xff09;empty 判断是否为空&#xff08;4&#xff09;resize 改变vector的size&#xff08;5&#xff09;reserve 改…

Alvas.Audio v2019 Crack

Alvas.Audio v2019 Crack 该库使C#和VB.Net程序员能够创建执行&#xff08;包括混合声音信息&#xff09;、捕获、转换和编辑音频的应用程序。 阿尔瓦斯。音频是C#音乐库。网络程序员。 这使你能够生产。NET程序&#xff0c;例如Winforms/WPF/Windows服务/控制台录音机、Int…

❤️创意网页:使用CSS和HTML创建令人惊叹的3D立方体

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;简单好用又好看&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;欢迎踏入…

经典文献阅读之--SRIF-based LiDAR-IMU Localization(SRIF的LiDAR-IMU自动驾驶鲁棒定位)

0. 简介 对于车辆来说&#xff0c;我们更希望能够得到一个有效的定位系统&#xff0c;能够保证高精度的同时&#xff0c;拥有较高的鲁棒性&#xff0c;而《Robust SRIF-based LiDAR-IMU Localization for Autonomous Vehicles》就是这样一篇文章&#xff0c;在各种场景中实现了…

起名大师,支持多种取名方式,根据自己的喜好去选择

软件功能&#xff1a; 1.参考宝宝姓氏、性别、生辰八字、天格、地格辅助用户为宝宝取名。 2.一次可生产数千个好名字&#xff0c;您还可根据笔画数、拼音、五行等筛选喜欢的名字。 3.提供10余种方法供起名选择&#xff0c;比如指定取名&#xff0c;谐音取名&#xff0c;生日取…

【百度】判断ip地址是否合法

在LeetCode上没有看到这个题目&#xff0c;加上对String的API记得不清楚&#xff0c;导致这个题目没有写得很好&#xff0c;许愿面试官能够仁慈一点 一个合法的ip地址应该有&#xff1a; 三个点将字符串划分为4个数字数字的大小[0,255]&#xff0c;且数字不能为空 合理应用St…

mycat 垂直分库与水平分表使用详解

说明 在了解mycat的常用分片规则之前,有必要再对涉及到分片规则相关的几个配置文件做深入的了解,包括:schema.xml,server.xml,rule.xml等, 其中最核心的schema.xml文件是配置分片规则的入口文件,有必要对该配置文件中的关键参数做了解,且看下面这幅图,回顾下里面的配置…

【C++】二叉搜索树KV模型

最典型的一个场景&#xff0c;自动翻译软件&#xff0c;输入中文&#xff0c;输出对应的英文&#xff0c;输入英文&#xff0c;输出对应的中文。 可以用一颗搜索二叉树来实现这一功能。 K->key V->val 基础结构和普通搜索二叉树保持一致&#xff0c;只是成员多了一个_val…

关于Tab制表符,点击一次跳很多字符的问题解决

首先在出现问题的地方右键鼠标&#xff0c;出现后点击段落。 进入后点击左下角的制表位 进入后点击全部清除&#xff0c;然后确认&#xff0c;问题就解决了&#xff08;哪里有问题就处理哪里&#xff09;

天纵竞赛系统助力江苏省“苏小登杯”不动产登记技能竞赛暨首届全国赛省级选拔赛

7月14日&#xff0c;第四届江苏省“苏小登杯”不动产登记技能竞赛暨首届全国赛省级选拔赛在苏州广播电视总成功举办。天纵竞赛系统提供核心软件技术及其配套硬件支持。 本次竞赛由江苏全省13支队伍、52名一线不动产登记人员参加比赛&#xff0c;竞赛环节包括笔试、现场竞答、代…

性能测试 —— JMeter分布式测试及其详细步骤

性能测试概要 性能测试是软件测试中的一种&#xff0c;它可以衡量系统的稳定性、扩展性、可靠性、速度和资源使用。它可以发现性能瓶颈&#xff0c;确保能满足业务需求。很多系统都需要做性能测试&#xff0c;如Web应用、数据库和操作系统等。 性能测试种类非常多&#xff0c…

windows操作小技巧1:文件批操作更改类型

今日更新一个Windows操作小技巧: 日常生活中我们有批量操作更改文件后缀名&#xff08;类型&#xff09;的需要&#xff1a; 比如这有五个.txt文本文件&#xff0c;我要想将其批量改为.html该如何操作呢&#xff1f; 首先新建文本文档&#xff1a; 其次在新建的文本文档输入以…

B 端软件:常见知识梳理

前言 我一直从事企业级软件研发工作&#xff0c;也就是我们通常称之为 B 端软件。近年来&#xff0c;我的工作重心主要在研发低代码平台和 aPaaS 平台&#xff0c;这使我对 B 端软件有了更深入的理解。 和 B 端软件对应的就是我们熟悉的 C 端软件&#xff0c;我们手机中安装的那…

VsCode添加Vue模版代码片段

文章目录 VsCode添加Vue模版代码片段1. 复制一段已有要制作模板的Vue代码&#xff0c;比如&#xff1a;2. 粘贴到下方链接的工具网站&#xff0c;可自动生成模板代码的片段3. VsCode中设置代码片段3-1 打开菜单&#xff1a;首选项-用户片段3-2 出现如下的搜索栏&#xff0c;搜索…

简易注册中心监控NAS断电断网

日常使用NAS过程中&#xff0c;偶尔会出现家里断电或者断网的情况&#xff0c;NAS自带网络断开的通知功能&#xff0c;但需要是恢复网络链接后才会通知&#xff0c;而此时都恢复了&#xff0c;再通知也就没那么重要&#xff0c;还有断电情况下也是需要回家才能知道&#xff0c;…

opencv -12 图像运算之按 《位或》 运算(图像融合图像修复和去除)

位或运算 或运算的规则是&#xff0c;当参与或运算的两个逻辑值中有一个为真时&#xff0c;结果就为真。其逻辑关系可以类比为如图 所示的并联电路&#xff0c;两个开关中只要有任意一个闭合时&#xff0c;灯就会亮。 3-5 对参与或运算的算子的不同情况进行了说明&#xff0c;…

浅谈设计模式之工厂模式

0 工厂模式的介绍 工厂模式属于创建型模式&#xff0c;是Java中最常见的设计模式之一。工厂模式提供了一种将对象的实例化过程封装在工厂类的方式&#xff0c;通过工厂模式可以屏蔽掉对象的创建过程&#xff0c;对外提供了一种统一的接口来创建不同类型的对象。 优点&#xf…

数据结构01-线性结构-链表栈队列-队列篇

文章目录 参考&#xff1a;总结大纲要求线性结构-队列QQ号码解密 参考&#xff1a; 总结 本系列为C数据结构系列&#xff0c;会介绍 线性结构&#xff0c;简单树&#xff0c;特殊树&#xff0c;简单图等。本文为线性结构部分。 大纲要求 线性结构 【 3 】链表&#xff1a;单…

在线版PS就选这5个!能免费使用

虽然AdobePhotoshop作为专业的图形编辑工具为设计师带来了很多便利&#xff0c;但是它下载繁琐&#xff0c;费用昂贵的特性也让很多设计师望而却步。本文精心整理了5款能作为在线PS使用的设计工具&#xff0c;不仅能减轻操作设备的内存负担&#xff0c;而且可以免费使用&#x…

Java阶段五Day07

Java阶段五Day07 文章目录 Java阶段五Day07问题解析dubbo和nacos Dubbo负载均衡负载均衡介绍准备一个负载均衡的环境Dubbo负载均衡策略配置负载均衡的方式dubbo配置负载均衡优先级微服务阶段性架构 Spring Boot Starter自定义配置准备一个starter案例项目Spring框架版本迭代案例…