C++笔记:学习使用C++

一.命名空间

namespace 名字

作用:一种用来隔离命名冲突的机制,是C++的一项特性

例如:

cpp 复制代码
#include<iostream>

namespace A {
    void func_1() {
        printf("hello world A\n");
        return ;
    }
}

namespace B {
    void func_1() {
        printf("hello world B\n");
        return ;
    }
}


int main() {
    //在A B 空间中都有一个函数func_1
    //为了避免发生命名冲突,那么就需要隔离命名空间来定义
    //在分别调用函数时,需要在函数名前加上命名空间
    A::func_1();
    B::func_1();
    return 0;
}

using namespace 命名空间名:

using namespace 命名空间名是 C++ 中的一种语句。

例如using namespace std,用于指定当前代码中使用的命名空间为标准命名空间std,这样就可以直接使用std命名空间中的标识符而不需要在前面添加std::前缀。

代码实现:

cpp 复制代码
#include<iostream>
//使用命名空间std
using namespace std;

int main() {
    //cin 和 cout 还有 endl都是std空间里的对象
    //现在不用管cin它们是什么,知道他是std空间里面的就行
    int n;
    cin >> n;
    cout << n << endl;
    //如果没有using namespace std语句
    //就需要写成下面的形式
    std::cin >> n;
    std::cout << n << std::endl;
    return 0;
}

二.输入与输出

输出:cout对象

现在去理解cout就是用来输出的,然后对于<<的理解就是,将内容给cout,cout将内容输出到输出流中,endl就相当于C语言中的"\n"也就是换行,现在就可以把endl看成"\n",然后需要换行时就直接输出endl换行。

输入:cin对象

现在理解cin就是用来读取数据的,对于>>的理解就是,cin在标准流读取到数据后将数据"打入"给>>后的变量。

代码使用:

cpp 复制代码
#include<iostream>
using namespace std;

int main() {
    int n;
    //使用cin时,也不用对变量进行取地址了
    //也不用使用格式占位符
    cin >> n;
    //在这里使用cout
    //就不像使用printf还需要使用格式占位符了
    cout << "hello world " << "n = " << n << endl;
    return 0;
}

格式化输出:

cpp 复制代码
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    //输出整形
    int num = 123;
    cout << "num = " << num << endl;

    //输出双精度浮点型
    double f = 3.1415926;
    //setprecision(2) 是将输出保留小数点后两位
    cout << "f = " << f << setprecision(2) << endl;

    //输出布尔类型
    bool isTrue = true;
    //这里使用boolalpha是将输出结果转为字符串类型
    //如果没有boolalpha 那么将会输出 Value : 1
    cout << "Value :" << boolalpha << isTrue << endl;

    //输出字符串
    string str = "hello world";//现在理解str就是像char类型的字符数组
    cout << str << endl;

    //输出科学计数法
    //scientific 表示输出内容用科学计数法输出
    double val = 1.2345678;
    cout << "Scientific notation : " << scientific << val << endl;

    //输出指针地址
    int *p = &num;
    cout << "&num = " << p << endl;

    int n = 96;
    //十六进制
    cout << hex << "hex : " << n << endl;
    //八进制
    cout << oct << "oct : " << n << endl;
    //十进制
    cout << dec << "dec : " << n << endl;
    
    //自定义输出
    int width = 10;
    char c = '*';
    //setw用于设置字段宽度,即输出的字符数。
    //它接受一个整数参数,指定输出的最小宽度。
    //如果输出的内容不够宽,将用空格填充以达到指定的宽度
    cout << setw(width) << n << endl;
    //setfill用于设置填充字符,即在宽度未达到指定值时用于填充的字符。
    //它接受一个字符参数,指定用于填充的字符。
    //例如下面用字符c进行填充,如果没有setfill那么就默认是空格填充
    cout << setw(width) << setfill(c) << n << endl;
    return 0;
}

执行结果:

相关推荐
向阳2561 分钟前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
s_little_monster14 分钟前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
XiaoLeisj18 分钟前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
风象南19 分钟前
SpringBoot实现数据库读写分离的3种方案
java·spring boot·后端
阳光_你好24 分钟前
请详细说明opencv/c++对图片缩放
c++·opencv·计算机视觉
振鹏Dong25 分钟前
策略模式——本质是通过Context类来作为中心控制单元,对不同的策略进行调度分配。
java·策略模式
杰克逊的黑豹31 分钟前
不再迷茫:Rust, Zig, Go 和 C
c++·rust·go
ChinaRainbowSea34 分钟前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
雾月5535 分钟前
LeetCode 914 卡牌分组
java·开发语言·算法·leetcode·职场和发展
Y.O.U..1 小时前
今日八股——C++
开发语言·c++·面试