【C++小语法技巧】命名空间和输入输出

在使用C语言编程过程中,C语言的要求之严格,编程过程之繁琐,大同小异的重复性工作,令C++之父使用C语言编程时也深受其扰,于是乎C++兼容C小语法诞生了

一、命名空间域(解决C语言中命名冲突)

1.定义命名空间(相当于把一块地圈起来)

形式:namespace + 命名空间名

namespace std(标准命名空间):包含C++标准库中的所有内容

代码示例

namespace yang
{int x=0;//定义变量//定义函数int Add(int x,int y){return x + y;}//自定义类型struct Student{int num;char name[20];};//嵌套命名空间namespace bit{int x = 0;}
}

可以定义变量、函数、自定义类型,可以嵌套


2.作用域符::

可以访问想要访问的作用域里面的内容


为什么命名空间域可以解决命名冲突问题呢?首先我们需要了解编译原则

3.编译原则-默认查找顺序

(1)当前局部域(自家的菜地)

(2)全局域(野外的地,谁都可以用)

问:默认查找会进入命名空间里面找吗?

答:No,命名空间没有展开(邻居的菜地,未经允许不可入内)。


如何才能进入命名空间?需要展开命名空间

4.展开命名空间

展开方式

(1)全展开 

注:平常练习可以用,在大项目中不推荐用,以免造成命名冲突

(2)指定展开某一个命名空间

(3)指定访问

代码示例:

#include<iostream>
namespace yang
{int x = 10;//定义变量//定义函数int Add(int x,int y){return x + y;}//自定义类型struct Student{int num;char name[20];};//嵌套命名空间namespace bit{int x = 20;}
}
namespace zhang
{int x = 30;
}
using namespace zhang;//指定全展开zhangint main()
{printf("x=%d\n",yang::x);//指定访问printf("x=%d\n", yang::bit::x);//指定访问printf("x=%d\n", x);
}

运行结果:


二、输入和输出

输入:cin>>(流提取)

输出:cout<<(流插入)

C++兼容C,C语言的输入和输出通常使用 scanf() 和 printf() 函数C++也可以用,这些函数语法相对复杂,且对数据类型有一定的限制。例如,scanf() 函数在读取字符串时需要指定缓冲区的大小,否则可能会导致缓冲区溢出等安全问题。

C++的I/O流的优势在于支持多种数据类型,而不仅仅是基本数据类型。例如,我们可以使用 std::cin 和 std::cout 来读取和写入字符串、数组、自定义类型等。这使得C++的I/O功能更加灵活和强大。

代码示例:

#include<iostream>
using namespace std;
int main()
{int x = 10;double y = 10.5;cout << "x=" << x << endl;//"x="字符串可以直接输出,endl是换行cout << "y=" << y << endl;int a = 0;double b = 0;cin >> a;cin >> b;cout << "a=" << a << endl;cout << "b=" << b << endl;return 0;
}

运行结果:

欢迎大家一起学习交流

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

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

相关文章

Python—基本数据类型

Python是一种解释型语言&#xff0c;非常灵活&#xff0c;并且具有很高的交互性&#xff0c;可以方便的编写、测试和调试代码&#xff1b;本文主要介绍Python的基本数据类型&#xff0c;主要包括整数、浮点数、字符串、布尔、列表、元组、集合和字典。 目前大部分是用Python进…

C语言之旅:文件操作

目录 一什么是文件 1.1程序文件&#xff1a; 1.2数据文件&#xff1a; 1.3文件名 二.文件的打开与关闭 2.1流和标准流 2.2 文件指针 2.3文件的打开与关闭 三.文件的顺序读写 3.1顺序读写函数介绍 fgetc fputc fgets fputs 四.文件的随机读写 4.1 fseek 4.2 ftell…

【案例教程】土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测

查看原文>>>土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测 土地利用/土地覆盖数据是生态、环境和气象等领域众多模型的重要输入参数之一。基于遥感影像解译&#xff0c;可获取历史或当前任何一个区域的土地利用/土地覆盖数据&#xff0c;用于评估区域的生…

FISCO BCOS助力深港跨境数据验证平台上线试运行

日前&#xff0c;深港跨境数据验证平台在深港两地上线试运行。这是在《粤港澳大湾区发展规划纲要》和《全面深化前海深港现代服务业合作区改革开放方案》等政策指引下&#xff0c;深港两地加快发展新质生产力、扎实推进数字经济高质量发展的又一创新实践。 深港跨境数据验证平…

Rust语言内部运行原理介绍

Rust语言因其独特的内存管理特性和安全性而日益受到程序员的青睐。本文旨在为初学者提供一个关于Rust的基础入门课程和对其内部运行原理的简介&#xff0c;帮助你理解这门语言的核心优势和设计理念。 1. Rust入门课程 基础知识 Rust语言的学习起点应从其基本语法开始。Rust的…

I2C总线协议

目录 一、前言 二、概念 三、I2C总线 1、主从结构 2、两线 3、半双工 4、上拉电阻 5、高阻态 四、时序图 1、起止信号 2、数据传输 3、应答信号 五、数据传送 1、传送格式 2、读写数据 六、时钟同步与仲裁 1、时钟同步 2、仲裁 七、时钟拉伸 八、总线速率 一、…

Kotlin核心编程知识点-01-基础语法

文章目录 0.前言1.不一样的类型声明1.1.增强的类型推导1.2.声明函数返回值类型1.3.是否需要显示声明类型&#xff1f; 2.val和var的使用规则2.1.val的含义&#xff1a;引用不可变 3.高阶函数和Lambda3.1.抽象和高阶函数3.2.函数作为参数的需求3.3.函数的类型3.4.方法和成员引用…

项目实施奖励方式调查

此调查主要了解各企业的项目激励方式&#xff08;只有3个问题&#xff09;。 相应的调查结果也将定时公布&#xff0c;希望对企业项目管理、企业激励方面有一定帮助。 感谢大家的支持。 链接地址为&#xff1a;项目实施奖励方式调查

数据的可计算性

目的&#xff1a;更容易被计算机程序分析和处理。所以涉及到数据准备、清洗、整理、格式化等过程。 1、标准化数据格式&#xff1a;所有数据遵循统一的格式和标准。比如日期和时间以标准格式存储。 2、清洗数据&#xff1a;移除或修正 错误数据和异常值&#xff0c;包括去除重…

Flutter 依据JSON数据自动生成实体类

json自动化生成工具 点击这里可以跳转 页面是这样的 然后在左边输入你的json数据&#xff0c;它会自动生成对应的实体类 生成的实体类是如下&#xff1a; import package:json_annotation/json_annotation.dart; part merch_region.g.dart;JsonSerializable()class MerchReg…

国网645协议报文解析软件

本文分享一款支持国网DL645-2007规约的报文解析软件&#xff0c; 链接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取码: y1de 主界面如下图所示&#xff1a; 本解析软件同时内嵌规约文档&#xff0c;支持一键打开文档&#xff0c;功能如下&#xff1a; 同时支持模…

堆的数组实现

前言 本次博客来讲解一下堆的数组实现&#xff0c;好吧还是会结合图例&#xff0c;让大家理解 堆的定义 什么是堆&#xff1f; 堆是一颗完全二叉树。它的性质是父节点一定大于或者一定小于子节点 每一个结点都要满足这个性质就是堆 堆的特性是堆顶的数据一定是最大或最小…

ROS仿真多点导航

仿真环境启动&#xff1a; 1、启动并进入到相应环境&#xff1a; roscarroscar-virtual-machine:~/artcar_simulation$ 启动gazebo环境&#xff1a; roslaunch artcar_gazebo artcar_gazebo.launch 启动move_base&#xff1a; roslaunch artcar_nav artcar_move_base.launc…

3D数字化技术如何改变汽车行业?

近年来&#xff0c;新能源汽车行业加速发展&#xff0c;新车型密集发布&#xff0c;汽车保有量和车龄的增加&#xff0c;也同时点燃了汽车后市场的增长引擎。对于车企而言&#xff0c;如何全方面优化汽车从研发、生产、售后到营销的各个环节&#xff0c;以便适应快速变化的市场…

中文域名和英文域名有什么区别?中文域名有哪些优势?

作为企业网站的重要标识&#xff0c;域名在数字化时代扮演着重要角色。而随着中国互联网的快速发展&#xff0c;中文域名也逐渐崭露头角&#xff0c;受到国内企业和用户的关注。本文国科云作为中国科学院控股有限公司旗下的域名管理品牌&#xff0c;简单为大家介绍下中文域名和…

使用make_blobs生成数据并使用KNN机器学习算法进行分类和预测以及可视化

生成数据 使用make_blobs生成数据并使用matplotlib进行可视化 完整代码&#xff1a; from sklearn.datasets import make_blobs # KNN 分类器 from sklearn.neighbors import KNeighborsClassifier # 画图工具 import matplotlib.pyplot as plt # 数据集拆分工具 from sklea…

【代码随想录】链表

2024.5.11-2024.5.15 移除链表元素 #判断头节点是否空&#xff0c;#并且头节点为要删除的值&#xff0c;头节点向后移while head and head.valval:headhead.nextif not head: returncurhead#当前指针指向的下一个元素为val,当前指针指向下一个的下一个#否则&#xff0c;当前指…

Win7远程桌面连接不上:原因及专业解决方案

Win7远程桌面连接作为一种方便的工具&#xff0c;使得用户可以从一台计算机远程访问和操作另一台计算机。然而&#xff0c;有时用户可能会遇到Win7远程桌面连接不上的情况&#xff0c;这可能是由于多种原因导致的。 一、原因分析 1. 网络设置问题&#xff1a;确保计算机与远程…

Java 语言的特点分析及应用

Java语言自问世以来&#xff0c;因其独特的设计理念和广泛的应用领域&#xff0c;成为了编程语言中的一颗璀璨明星。以下是对Java语言特点的详细分析及其实际应用场景&#xff0c;希望能帮助面试者更好地理解和掌握Java的优势。 1. 简单易学 Java的语法简单&#xff0c;类似于…

可用在vue自动导入的插件unplugin-auto-import

在大多数vue3开发中&#xff0c;基本所有页面都会引用vue3 componsition api&#xff0c;如下代码 想这种vue3 架构中自带的api&#xff0c;如果在全局配置一下的话&#xff0c;就可以减少一部分代码量&#xff0c;只是在代码编译的时候&#xff0c;会添加相应的引用&#xff…