自学内容网 自学内容网

【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;//指定全展开zhang

int 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;
}

运行结果:

欢迎大家一起学习交流


原文地址:https://blog.csdn.net/2301_80840905/article/details/138319288

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!