数据类型
字符
类型 | 内存(字节) | 说明 |
---|---|---|
char | 1 | ascii字符 |
wchar_t | 2 | 宽字节字符 |
char16_t | 2 | utf-16字符 |
char32_t | 4 | utf-32字符 |
使用说明:
1、char
正常使用不说了!这里说一下:ascll为10的时换行;
举例:
int main()
{
std::cout << "Hello World!\n";
std::cout << "Hello World!" << std::endl;
std::cout << "Hello World!" << (char)10; //一样使用
}
2、wchar_t
目的字符:
1、英文字符
wchar_t wchar = { 'A' };
std::cout << "cout: " << wchar << std::endl;
std::wcout << "wout: " << wchar << std::endl;
wchar = { L'A' };
std::cout << "(L)cout: " << wchar << std::endl;
std::wcout << "(L)wout: " << wchar << std::endl;
结果:
结论:宽字符用于英文字符时,前缀可加L,也可不加
2、中文字符
宽字符用于中文字符时必须加前缀L,否则编译都通过不了
正确代码:
// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <locale> //必须要包含,在宽字符用于显示中文字符时需要使用
int main()
{
setlocale(LC_ALL, "chs");//设置本地语言集为中文******必须要
wchar_t wchar = { L'张' };
std::cout << "(L)cout: " << wchar << std::endl;
std::wcout << "(L)wout: " << wchar << std::endl;
}
结果:
**结论:**宽字符用于中文字符时,不仅要加前缀L,还必须包含locale库和设置本地语言集为中文
查看变量的类型:
格式: typeid(变量).name()
案例:
int main()
{
auto ia{ 10 };
auto ib{ 2122222121212 };
std::cout << "ia类型为" << typeid(ia).name() << std::endl;
std::cout << "ib类型为" << typeid(ib).name() << std::endl;
}
结果:
这里又发现long long的另一个别名为__int64
格式化输出
1、浮点输出以及科学计数法输出切换
代码:
int main()
{
float fa = 51222;
std::cout << std::fixed;
std::cout << "(fixed模式)ib= " << fa << std::endl;
std::cout << std::scientific;
std::cout << "(scientific模式)ib= " << fa << std::endl;
}
结果:
2、设置有效精度
代码:
#include <iostream>
#include <iomanip> //需要包含
int main()
{
float fa = 5.1222f;
std::cout << std::setprecision(4);
std::cout << "(4位精度)fa= " << fa << std::endl;
std::cout << std::setprecision(3);
std::cout << "(3位精度)fa= " << fa << std::endl;
}
结果:
3、设置进制输出
代码:
#include <iostream>
int main()
{
int ia = 50;
std::cout << std::oct << "八进制 fa= " << ia << std::endl;
std::cout << std::dec << "十进制 fa= " << ia << std::endl;
std::cout << std::hex << "十六进制 fa= " << ia << std::endl;
}
结果:
4、设置八和十六进制输出前缀
代码:
#include <iostream>
int main()
{
int ia = 50;
std::cout << std::showbase;
std::cout << std::oct << "八进制 fa= " << ia << std::endl;
std::cout << std::hex << "十六进制 fa= " << ia << std::endl;
}
结果:
5、设置输出内容宽度以及填充
代码:
#include <iostream>
#include <iomanip> //需要包含
int main()
{
int ia = 50;
std::cout << std::setw(20) << "setw(10) ia= " << ia << std::endl;
std::cout << std::setfill('*');
std::cout << std::setw(20) << "*setw(10) ia= " << ia << std::endl;
}
结果:
6、设置输出对齐方式
代码:
#include <iostream>
int main()
{
std::cout << std::left;
std::cout << std::setw(20) <<"aaaaaaaaaa " << std::endl;
std::cout << std::setw(20) << "bbbbb " << std::endl;
std::cout << std::right;
std::cout << std::setw(20) << "aaaaaaaaaa " << std::endl;
std::cout << std::setw(20) << "bbbbb " << std::endl;
}
结果:
自己向自己的学习精神致敬!!!