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

时间:2024-04-10 19:04:13

一.命名空间

namespace 名字

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

例如:

#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::前缀。

代码实现:


#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在标准流读取到数据后将数据“打入”给>>后的变量。

代码使用: 

#include<iostream>
using namespace std;

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

格式化输出:

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

 执行结果: