整型 C++提供了好几种整型,可以根据程序的具体需求选择合适的整型。不同C++整型类型占用的内存也不一样,占用内存越大,整型数值的范围也就越大,整型还分为有符号和无符号,即是否可表示正负。...64位 计算机的基本单位是字节 一个字节有8位 一位可以表示0和1,8位单元可以表示0-255或者-128到127 没有申明无符号型的话基本都是有符号类型的,那么我们该如何获取类型的限制信息 头文件climits...C++可以以三种不同的计数方法,我们常见的157 123是以10为基数,C++使用前一俩位标识数字,如果第一位是1~9则基数为10如果第一位是0,第二位是1-7则,基数是8,如果前两位是0x或者0X,则基数是...''表示字符常量,这样不管在什么系统下都表示是字符常量,不会因为编码不同造成错误,对于一些无法从键盘输入的字符,C++提供了转义序列 const限定符 前面我们用到了#define定义常量的方法,const...const type name = value;尽量在申明中初始化值
Union) 自定义数据结构:用struct或者class定义的类 POD:Plain Old Data,用来表明C++中和C相兼容的数据类型,在C++中可以用is_pod::value判断是否是...实际开发中我们仅使用C++内置整型中的int,如果程序中需要大小不同的整型,那么: 在合适情况下,推荐用size_t和ptrdiff_t 我们可以认为int至少32位,如果需要使用64位整数,那么使用...int64_t 不要使用uint32_t等无符号类型,你应该使用断言来指出变量为非负数,混用有符号类型和无符号类型可能导致非预期的结果(见下文) 执行浮点数运算时使用double,因为float通常精度不够且双精度浮点数和单精度浮点数的计算代码相差无几...当一个算数表达式中既有无符号类型又有带符号类型时,带符号数会自动转化为无符号数,结果可能是出乎意料的: // 切勿混用带符号类型和无符号类型 unsigned u = 10; int i = -42;...整形和浮点型字面量 以0开头的整数表示八进制,以0x或者0X开头的整数表示十六进制,我们可以用下面三种方式表示20: 20 // 十进制 024 // 八进制 0x14 // 十六进制 浮点型字面量是一个
,具体可以使用sizeof运算符得到: std::cout << sizeof(c); std::cout << sizeof(s); std::cout << sizeof(i); std::...需要注意的是在修改之前,之前修改的格式会一直生效。...上面使用sizeof得到char的字节为2字节,也就是说,char类型可以表示 0~ 255 或者 -128 ~ 127 ,上面说过,除了浮点数没有有无符合之分,剩下的类型都有有符合和无符号之分,也就是...执行运算时,如果一个运算数是有符号的,而另一个是无符号的,那么C/C++会隐式的将有符号参数强制转换为无符号类型,并假设这两个数都是非负数。...7.为什么浮点数没有分有无符号类型 有无符号类型说完,我们来说说文章开头留下的问题,为什么浮点数没有有无符号之分: 想要使用unsigned,就意味着最高为要用来表示数据,而不是正负,而浮点数定义中规定内存中的数据的第一位必须是符号位
ios_base类存储了描述格式状态的信息,例如一个类成员中某些位决定使用哪个计数系统(如八/十/十六进制),另外一个成员决定字段的宽度,且ios_base是ostream间接基类,因此ostream也可以修改计数系统和字段宽度...填充字符 默认情况下,cout 使用空格填充字段中未被使用的部分,我们在1.2中的例子已经验证过了,那填充字符可以设置吗?...5. setf() C++使用setf()成员函数控制小数点被显示时其他几个格式选项,其中cout.setf(std::ios_base::showpoint)设置cout打印浮点类型中末尾的0和小数点...C++将十六进制和八进制都视为无符号的,因此对它们,无需使用符号(然而,有些C++实现可能仍然会显示加号)。】...头文件iomanip 使用iostream工具来设置一些格式值(如字段宽度)非常麻烦。为了简化工作,C++在头文件中提供了其他的一些控制符,不但可以提供前面提到过的格式设置,而且用起来方便。
2 //正确输出后返回值为:26(汉字与中文符号占2个,'\n'占1个) return 0; } ---- 1.3 占位符 占位符是一种有特定作用的符号,用于在格式化字符串中占住一个固定的位置...对应数据类型 d 以十进制形式输出整数 int lld 以十进制形式输出长整数 long long o 以八进制形式输出无符号整数(不输出前缀0) int x 以十六进制形式输出无符号整数(不输出前缀...0x) int u 以十进制形式输出无符号整数 unsigned int llu 以十进制形式输出无符号长整数 unsigned long long int f 以小数形式输出单、双精度实数 float...cin 位于命名空间std下,使用前通常使用命名空间std,即: using namespace std; C++ 编译器会根据要输入值的数据类型,选择合适的流提取运算符来提取值,并把它存储在给定的变量中...cout 位于命名空间std下,使用前通常使用命名空间std,即: using namespace std; C++ 编译器会根据要输出变量的数据类型,选择合适的流插入运算符来显示值。
#define MAX 12456789 std::cout <<sizeof(MAX) << std::endl; 来看运行结果: ? 结果是4,说明C++将MAX保存为int类型。...下面的结论是需要记住的:在C++中将使用这几种类型中能够存储该数的最小类型来表示,前提是该数后面没有后缀,如果有后缀,则按后缀指定的类型来存储,至于浮点数呢,C++规定过只要不加f后缀的浮点数默认都为double...至于为什么会使用无符号的类型来存储,这是因为十六进制常用来表示内存地址,内存地址是没有符号的,因此unsigned int 比 long更适合来表示十六位的地址。...想要深入了解请单击 通用字符名类似于转义字符,使用\u和\U打头,\u然后跟一个八进制,\U后面跟的是十六进制,可以这样用: int k\u0025d;// 这样定义变量名 cout << "\u0025..."; // 打印该字符 这样就可以在控制台打印出我们想要字符,比如各种图案。
1.变量名 c++命名规则: 在名称中只能使用字母字符、数字和下划线 名称的第一个字符不能是数字 区分大写字符和小写字符 不能将c++关键字作为名称 以两个下划线或下划线和大写字母打头的名称保留给实现(...在C++中short、int、long它们的长度: short至少16位(8位=1个字节); int至少与short一样长; long至少32位,且至少与int一样长。...但是在C++中 cout 的默认输出是10进制,如果要按照8进制或者16进制输出的话可以使用cout的一些特殊特性。 前面指出过的头文件iostream提供了控制符endl,用于指示cout重起一行。...另外,由于标识符hex位于名称空间std中,而程序使用了该名称空间,因此不能将hex作为变量名,然而,如果省略编译指令using,而是用std::cout、std::endl、std::hex、std:...:oct,则可以将hex用作变量名(但是要注意的是:在你修改格式之前原来的格式将一直有效) 4.const限定符 如果程序在多个地方使用同一个常量,只需要修改一个符号定义就可以,常用的方法有#define
要知道系统中整数的最大长度,可以使用C++工具来检查类型的长度。 首先使用sizeof运算符返回类型或变量的长度,单位为字节。 climits中包含符号常量(预处理方式)来表示类型的限制。...1.5 无符号类型 优点:可以增大变量能够存储的最大值。 创建无符号类型的变量时,只需要使用unsigned来进行声明即可。...C / C++中的三种计数方法: 十进制(第一位为1~9,基数为10)----> dec 八进制(第一位为0,基数为8) ----> oct 十六进制(前两位以0x或0X开头,基数为16,0~9和a~f...句点被称为成员运算符*/ std::cout << std::endl; return 0; } 成员函数cout.put() ———— C++ OOP概念中的成员函数,成员函数归类所有...强制转换的通用格式如下: (typename) value //来源于C语言 typename (value) // C++ 4.4 C++11中的auto声明 在初始化声明中,如果使用关键字auto
在大多数系统上,short通常是2字节(16位)。 cout <<"Value of s : "<< s << endl;: 使用cout打印"Value of s : "和变量s的值。...在C++中,布尔类型的值只能是true或false。 cout<<b1<<endl;: 使用cout打印变量b1的值,也就是true。...unsigned short int u1=60445;: 声明一个无符号短整型变量u1并初始化为60445。在大多数系统上,unsigned short通常是2字节(16位)。...cout<< u1 <<endl;: 使用cout打印变量u1的值。由于是无符号类型,所以可以输出大于255的整数。...下面是C++中主要的变量类型及其描述: 基本类型 整数类型:这些类型用于存储整数值。有符号和无符号两种类型。 int: 通常为32位,但大小可能因平台而异。 short: 通常为16位。
类型读写说明常量仅只读,在定义并初始化后,不可修改原值变量可读写,在程序运行中,可以修改变量值 二、基本数据类型 在C++中,数据类型决定了变量存储的大小和布局,基本数据类型可分为以下4类: 整数类型...不知道有没有注意到,和其他高级程序语言有点不太一样,C++在基本数据类型中,是没有字符串变量的,可以采用字符串数组存储字符串的,这很C字符串风格,但是已经不鼓励使用了,不过还是要了解一下。...在标准C++类库中有一个String类,这个是值得推荐的,很C++字符串风格。...namespace std; // main() 是主程序,程序开始执行的地方 int main() { //int类型所占字节长度 cout<<sizeof(int)<<endl;...//无符号整数 2020ul //无符号的长整数,符号顺序随意 2020lu //无符号的长整数,符号顺序随意 (2)浮点常量 其实,一个浮点常量的表示 = 整数部分 + . + 小数部分 + 后缀
一,基础概念 C++的IO操作是基于字节流,并且IO操作与设备无关,同一种IO操作可以在不同类型的设备上使用。...C++的流是指流入/流出程序的字节序列,在输入操作中数据从外部设备(键盘,文件,网络等)流入程序,在输出操作中数据从程序流向外部设备(控制台,文件,网络等)。...在C++编程中,流的使用步骤如下: 1.实例化一个流对象。 2.将流对象关联到实际的外部设备(键盘,控制台,文件,网络等)。 3.调用流对象中提供的成员函数,完成数据的转换、传输等操作。...hex、oct、dec:以十六进制、八进制、十进制输出数字。 setw:设置输出数值型数据的字段宽度。 setfill:设置用于填充的字符。 setprecision:设置输出小数时的小数位数。...3.输入流的操作算子 以下算子可以用来格式化输入流: hex、oct、dec:以十六进制、八进制、十进制读入数字。 skipws:输入时跳过空白字符,默认情况下为skipws。
C语言中,我们可以通过函数printf和scanf进行格式化控制,而在C++中仍然包含了前者,但还提供了以下两种格式控制的方法: (1)使用流成员函数进行格式控制; (2)使用预定义操作符进行格式控制...在以fixed形式和scientific形式输出时代表小数位数 (5)填充字符流成员函数fill。...操纵符控制IO格式 用ios类中的成员函数来进行IO格式的控制总需要写一条单独的语句,而不能直接嵌入到IO语句中去,显得很不方便。因此C++又提供了一种用操纵符来控制IO的格式。...操纵符分为带参和不带参的两种,带参的定义在头文件中,不带参的定义在中。...scientific 科学计数法输出 showpos 在正数显示“+” uppercase 在以科学计数法和以十六进制输出时字母用大写表示 下面用示例来验证: #include "stdafx.h"
C语言中,我们可以通过函数printf和scanf进行格式化控制,而在C++中仍然包含了前者,但还提供了以下两种格式控制的方法: (1)使用流成员函数进行格式控制; (2)使用预定义操作符进行格式控制...在以fixed形式和scientific形式输出时代表小数位数 (5)填充字符流成员函数fill。...(6); std::cout<<128<<std::endl; std::cout.unsetf(std::ios::dec);//清除状态基数为10 //在输出整数的八进制形式或十六进制形式之前...操纵符控制IO格式 用ios类中的成员函数来进行IO格式的控制总需要写一条单独的语句,而不能直接嵌入到IO语句中去,显得很不方便。因此C++又提供了一种用操纵符来控制IO的格式。...操纵符分为带参和不带参的两种,带参的定义在头文件中,不带参的定义在中。
+打印Hello World 新生婴儿会以自己独特的方式向这个崭新的世界打招呼,C++刚出来后,也算是一个新事物, 那C++是否也应该向这个美好的世界来声问候呢?...它允许程序从外部设备(如硬盘、键盘、网络等)读取数据,或将数据写入到外部设备中。 I/O流可以分为字节流和字符流两种类型。 字节流以字节(8位)为单位进行读写。...读取数据时,程序会从流中读取一定数量的字节或字符,并将其存储在内存中;写入数据时,程序会将内存中的字节或字符写入到流中,以传输到外部设备。...cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含头文件中。 >是流提取运算符。...std命名空间的使用惯例 std是C++标准库的命名空间,如何展开std使用更合理呢? 在日常练习中,建议直接using namespace std即可,这样就很方便。
一、格式化输出的作用 在C++中,格式化输出是指以一定的格式向控制台输出信息。相比于普通输出,格式化输出能够使输出信息更加直观和易读。...通过“<<”运算符将多个元素拼接为一个字符串,不同类型的元素可以并列使用,编译器会自动将它们转换为字符串。 流输出默认以空格符为分隔符,默认以换行符结尾。通过符号“endl”可以手动输入回车符。...三、C++流输出的格式化 在实际使用中,通常需要进行更加复杂的格式化操作,包括输出宽度、刷空格、输出小数、设置精度等。C++流输出提供了丰富的选项,可以实现各种复杂的输出需求。...< 在上面的代码中,我们使用 cout.rdbuf() 将输出流重定向到字符串缓存中,执行后打印出“hello, world!”。...接着,在代码中使用了 buffer.str() 方法从字符串缓存中读出输出,并将其保存到文件中。 类似地,C++中还可以通过文件输出流重定向输出到文件中。
在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/ 总结 本文是C++系列博客,主要讲述字符类型char 字符类型char 在C++编程语言中...字符可以是字母、数字、标点符号或者是转义字符等。char类型通常占用一个字节(byte)的内存空间。...一个字节表示八位二进制数,8位无符号的二进制数可以表示为00000000-11111111,即0-255。 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。...请注意,这个程序只能处理一个字符,并且没有考虑加密过程中可能出现的边界情况,例如字符是大写字母、小写字母还是其他特殊字符。在实际应用中,加密通常会使用更复杂的算法和安全的密钥。...接着,我们调用decrypt函数来解密文本,并打印出解密后的结果。 请注意,这个加密算法非常简单,并不适合真正的安全加密需求。在实际应用中,加密通常会使用更复杂的算法和安全的密钥。
setiosflags(ios::uppercase) 在以科学计数法输出E和十六进制输出字母X时,以大写表示。 setiosflags(ios::showpos) 输出正数时,给出“+”号。...resetiosflags 终止已设置的输出格式状态,在括号中应指定内容。...16 ios::showbase 强制输出整数的基数(八进制以0打头,十六进制以0x打头) ios::showpoint 强制输出浮点数的小点和尾数0 ios::uppercase 在以科学计数法输出E..."1000" 前后无空格 setfill() 讲解 setfill(int _m) 随setw(int _w)一起使用 意思是在set(int _w)设定后的空格填充指定的字符 注意setfill里边的参数是...int _m 是个整数 所以如果我们要用空格来填充*号的时候 要使用setfill('*')[字符] 而不是setfill(*) C++中tellp()函数与tellg()函数 tellp()函数用来获取
操纵算子分为两类,一类是无参的,定义在ios_base.h头文件中,还有一类是有参的,定义在iomanip头文件中。...noskipws会改变>>的默认输入方式,会把空格,制表符等也读入 uppercase 在输出十六进制这样的数据时,对里面的字母进行大写,注意它对输出字符类型或者字符串类型是不起作用的 nouppercase...; //将浮点数x以十六进制形式输出,且字母都为大写 cout << uppercase << hexfloat << x << endl; cout.width(12...有参操纵算子 有参的操纵算子实际上是在无参的基础上实现的,是对无参操纵算子的补充,且对无参操纵算子的使用起到了简化的作用。...const std::tm类型指针,第二个类型是对时间进行格式化的格式字符串 根据第二个参数指定格式输出tm中数据 get_time 第一个参数是const std::tm类型指针,第二个类型是对时间进行格式化的格式字符串
第一个C++程序 #include using namespace std; int main() { cout << "Hello world" << endl; system...("pause"); return 0; } 注意:C++在创建变量时,必须给变量一个初始值,否则会报错 ---- 常量 作用:用于记录程序中不可更改的数据 C++定义常量两种方式 #define...+中预先保留的单词(标识符) 在定义变量或者常量时候,不要用关键字 C++关键字如下: asm do if return typedef auto double inline short typeid...a'; 注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号 注意2:单引号内只能有一个字符,不可以是字符串 C和C++中字符型变量只占用1个字节。.../打印数据a的地址 cout << p << endl; //打印指针变量p //2、指针的使用 //通过*操作指针变量指向的内存 cout << "*p = " << *p << endl
#include 也可以添加用户自定义的头文件,需要注意的是,自定义的头文件需要使用引号而非尖括号。 关于 using namespace std; std 是 C++ 标准库所使用的命名空间。...例如:C++ 标准库的所有内容均定义在 std 命名空间中,如果你定义了一个叫 cout 的变量,则可以通过 cout 来访问你定义的 cout 变量,通过 std::cout 访问标准库的 cout...单引号内只能有一个字符如 b,c 等,可以是空格符 ,但不可以是字符串如"abcd"。 C 和 C++ 中字符型变量只占用 1 个字节。...数值转换: 数值转换过程中,值可能会发生改变。 如果目标类型为位宽为 的无符号整数类型,则转换结果可以认为是原值 后的结果。...,则将位宽较小的类型转换为位宽较大的类型; 否则,若无符号变量的位宽不小于带符号变量的位宽,则将带符号数转换为无符号数对应的类型; 否则,若带符号操作数的类型能表示无符号操作数类型的所有值,则将无符号操作数转换为带符号操作数对应的类型
领取专属 10元无门槛券
手把手带您无忧上云