C++入门第三课:类型转换与输入

it2025-11-28  8

文章目录

1. 数据类型的转换2. 字符型和整型的转换3. 变量的输入4. C++语言输出固定长度的数字5. C语言的输入与输出6. 补充知识 - - 转义字符

1. 数据类型的转换

自动类型转换

在不同数据类型的混合运算中,编译器会隐式地进行数据类型转换,称为自动类型转换。 自动类型转换遵守以下规则: (1)若参与运算的数据类型不同,则先转换成同一类型,然后进行运算。 (2)转换按数据长度增加的方向进行,以保证精度不降低。例如int类型和long long类型运算时,先把int转换为long long后再运算。 (3)在赋值运算中,赋值号两边的数据类型不一样时,将把右面表达式的类型转换为左边变量的类型。如果右边表达式的数据类型长度比左边的长时,将丢失一部分数据。 即:char -->short -->int --> float -->double

强制类型转换

当自动类型转换不能实现目的时,可以显示的进行类型转换,称为强制类型转换。 强制类型转换的一般形式是: (类型名)(表达式) (类型名)变量 如(double)a 是将a转换为double型, (int)(x + y) 是将 x+y 的值转换为整型, (float)5/3 是将 5 的值转换成float型,再与 3 运算。 double为双精度浮点型,float为单精度浮点型,区别在于他们的精度不同。

2. 字符型和整型的转换

将一个字符放到内存单元时,实际上并不是把该字符本身放到内存中,而是将该字符的ASCII代码放到存储单元中。如果字符变量c1的值是’a’,c2的值是’b’,则在变量中存放的是 ‘a’ 的ASCII码97,‘b’ 的ASCII码98

代码演示:

#include<iostream> using namespace std; int main(){ char a = 'a'; cout<<a<<" "<<(int)a<<endl;//a 97 char b = 'b'; cout<<b<<" "<<(int)b<<endl;//b 98 int c = 97; cout<<c<<" "<<(char)c<<endl;//97 a int d = 98; cout<<d<<" "<<(char)d<<endl;//98 b cout<<++a<<endl;//b cout<<--b<<endl;//a cout<<(char)(c-32)<<endl;//A cout<<(char)(d-32)<<endl;//B return 0; }

3. 变量的输入

cin>>a;

#include<iostream> using namespace std; int main(){ int a; cin>>a;// 键盘输入a 的值 cout<<a<<endl; return 0; }

4. C++语言输出固定长度的数字

导入头文件:iomanip setprecision(7):输出7位数字,最后一位按四舍五入计算 fixed:固定位置从小数点开始

#include<iostream> #include<iomanip> using namespace std; int main(){ double num = 12.1234567; cout<<num<<endl;//12.1235 cout<<setprecision(7)<<num<<endl;//12.12346 cout<<fixed<<setprecision(3)<<num<<endl;//12.123 return 0; }

5. C语言的输入与输出

scanf("%d",&a); printf("%d",a);

#include<cstdio> int main(){ int a; scanf("%d",&a); // 键盘输入 printf("a=%d\n",a); // 控制台输出 '\n'=换行 float b; scanf("%f",&b); printf("b=%.2f\n",b);// 输出保留2位小数 char c; scanf("%s",&c); printf("c=%c\n",c); char d[20]; //定义字符数组,数组还未学习 scanf("%s",d);// 输入字符串 printf("d=%s\n",d); return 0; }

6. 补充知识 - - 转义字符

转义字符 作用:用于表示一些不能显示出来的ASCII字符 现阶段我们常用的转义字符有:\n \\ \t

转义字符含义ASCII码值(十进制)\a警报007\b退格(BS) ,将当前位置移到前一列008\f换页(FF),将当前位置移到下页开头012\n换行(LF) ,将当前位置移到下一行开头010\r回车(CR) ,将当前位置移到本行开头013\t水平制表(HT) (跳到下一个TAB位置)009\v垂直制表(VT)011\\代表一个反斜线字符"\"092’代表一个单引号(撇号)字符039"代表一个双引号字符034?代表一个问号063\0数字0000\ddd8进制转义字符,d范围0~73位8进制\xhh16进制转义字符,h范围0 ~ 9,a ~ f,A ~ F3位16进制
最新回复(0)