c++语法欠缺地方(持续更新)

  1. sizeof是用来计算变量占多大内存的,单位是字节(byte);sizeof 后面跟类型时,必须加上括号,例如sizeof(double);后面跟变量可以不用加括号,例如:sizeof d

  2. %d是以十进制形式输出有符号整数(正数不输出符号),%o是以八进制形式输出无符号整数(不输出前缀0),%x是以十六进制形式输出无符号整数(不输出前缀0x,x、A ~ F是小写),%X是以十六进制形式输出无符号整数(不输出前缀0x,x、A ~ F是大写),用修饰符“#”控制前导显示;# 对c,s,d,u类无影响;对o类, 在输出时加前缀0。对x类,在输出时加前缀0x;例如:printf("%#o %#X", a, a);

  3. EOF读取文件结束符,其值为 -1;ctrl + d 可以可以终止读取;getchar()是获取输入的字符,putchar()是打印获取的字符,注意putchar不会自动换行;我们想要写一直读取的东西时,可以这么写:while(scanf("%c", &c) != EOF)或者while((c = getchar()) != EOF)

  4. printf 的返回值是里面内容的长度;例如printf("\n%d", printf("Hello world!"));输出的先是Hello world!,然后一个换行,然后再输出的就是12,如果在 printf 里面加个 \n 输出就变成13了;

  5. %md可以控制读取输入的长度;例如:我们输入data = 20221228,scanf("%4d%2d%2d", &y, &m, &d),那么y就是2022,m就是12,d就是28;printf("%02d", m)表示输出m共有两位,如果位数不够的补前导0;

  6. set(int n) 函数是c++中 在输出操作中设置字段宽度设置,n表示字段宽度,只对紧接着的输出有效,紧接着的输出结束后又变回默认的域宽;头文件是#include <iomanip>; 当后面紧跟这的输出字段长度小于n时,在字段前面用空格补齐,也可以用setfill() 函数;当输出字段长度大于n时,全部整体输出;cout << setw(4) << 2022 << setw(4) << setfill('0') << 12 << setw(4) << setfill('0') << 28 << endl;看输出:在这里插入图片描述;我们知道:浮点数的存储与整数的存储方式大大不同,浮点数的存储会使用到科学计数法,例如:double d = 12345678; 在这里插入图片描述
    当我们不想使用到科学计数法时,我们可以在输出的前面加上 fixed 关键字;double d = 12345678; cout << fixed << d;在这里插入图片描述;注意:无科学计数法的小数点后面的位数是6位!函数 **setprecision(int n)**与 fixed 一起使用可以控制小数点后面的位数;头文件也是上面那个;例如:double d = 12345678; cout << fixed << setprecision(4) << d;在这里插入图片描述

  7. pow(a, b)函数是计算 a 的 b 次方;注意: pow 函数的参数类型是double,返回值也是double,当我们不强制类型转换时,有可能因为精度缺失而发生错误,头文件是#include <math.h>

  8. 实现交换两个数可以通过位运算(不使用临时变量): a = a ^ b; b = a ^ b; a = a ^ b;

  9. 海伦——秦九韶三角形中线面积公式:p = (a + b + c) / 2;s = sqrt(p * (p - a) * (p - b) * (p - c))

  10. 4 / 3 的结果是1,当我们想要的结果是一个浮点类型时,正确使用:4.0 / 3

  11. int 取值范围:int 在计算机内存占有 4 个字节,32 个比特位,因此:int 类型数据的取值范围为:-2 ^ 31 ~ 2 ^ 31 - 1;即:-2147483648 ~ 2147483647(2e9 左右的衡量单位)

  12. scanf在读取 %d和%f是会自动忽略空格和换行,而读取%c时是不会忽略空格和换行的(因为这也是字符);解决方案:我们在%c的前面加一个空格;我们来看看例子:①我们不加空格在%c的前面,他会把空格也识别成字符在这里插入图片描述 ②我们在%c的前面加上一个空格,就可以完美的进行输出了:在这里插入图片描述 ③使用 cin来读取数据就不用担心这个问题了:在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值