C++格式化输出

八进制、十进制、十六进制 C++ 表示与输出。

int a = 100;
cout << a << endl; // 默认十进制
cout << dec << a << endl;
cout << oct << a << endl;
cout << hex << a << endl;

输出:
100
100
144
64
int a = 100, b = 0144, c = 0x64;
cout << a << " " << b << " " << c << endl;

输出:
100 100 100

设置域宽:需要引入库 #include <iomanip>

cout << "cat" << endl;
cout << setw(10) << "cat" << endl;
cout << setfill('*') << setw(10) << "cat" << endl;
cout << setfill('*') << setw(10) << "blackcat1995" << ".com" << endl;
cout << setfill('*') << setw(2) << "blackcat1995.com" << endl;

输出:
cat
       cat
*******cat
blackcat1995.com
blackcat1995.com

C语言风格格式化输出

当输入数据范围较大时,比如超过 100 万,cin 读取数据就会明显变慢导致超时,这时,就可以采用C语言风格进行输入输出。

首先我们来看一下什么是C语言编程。

C语言就是以 .c 为后缀的文本文件,例如,创建一个 main.c 文件:

#include <stdio.h>  

int main(){

    int n;
    scanf("%d", &n);
    printf("a = %d\n", n);
    printf("Hello cat.");

    return 0;
}

如果变为 C++ 文件,只需更改后缀为 main.cpp,然后,将 stdio.h变为 cstdio

#include <cstdio>  

int main(){

    int n;
    scanf("%d", &n);
    printf("a = %d\n", n);
    printf("Hello cat.");

    return 0;
}

格式化输入

scanf(格式控制字符串,变量1地址,变量2地址...)。

格式控制符对应后面的变量地址。

注意:传入的是变量地址,变量前要有&,表示取地址。%d 和 %d 之间可以加空格也可以不加空格。

格式化输出

printf(格式控制字符串,表达式1,表达式2...)

格式控制字符串中的普通字符会保留,格式控制符会被后面对应的参数替代,构成字符串。

注:换行符为 '\n',例 "123\n456\n789"。

int a;
float b;
double c;
char d;

scanf("%d%f%lf\n%c", &a, &b, &c, &d);
printf("a=%d b=%f c=%.3lf d=%c d=%d\n", a, b, c, d, d);

注意:读取完变量 c 后,换行再读取 d,需要在 scanf 中过滤掉换行符。

namespace命名空间【补充】

#include <iostream>  
using namespace std; 

namespace CAT{
    int a = 1;
    double b = 3.14;
};

namespace DOG{
    int a = 3;
    double b = 3.14159;
};

using namespace CAT;
using namespace DOG;

int main(){

    cout << CAT::a << " " << CAT::b << endl;
    cout << DOG::a << " " << DOG::b << endl;

    // cout << a << " " << b << endl;

    return 0;
}

在C++编程语言中,命名空间(namespace)是一种用于组织和管理代码的机制,为了避免命名冲突。

通过使用命名空间,可以创建一个独立的区域,在该区域内定义的标识符(如变量、函数、类)具有唯一的名称,并且不会与其他命名空间中的标识符发生冲突。这样可以有效地组织大型项目的代码,并使其更易于理解和维护。

第4次作业

results matching ""

    No results matching ""