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