[toc]
推荐书籍
Visual Studio 2021运行C++,返回值被忽略:“scanf”
- 方法1:把
scanf
改成scanf_s
,如果又报其他错误的话,使用方法2; - 方法2:右键
项目文件
——属性
——配置属性
——C/C++
——常规
——SDL检查
改为否
即可 - 参考https://blog.csdn.net/mxy3538/article/details/113181661
清除缓冲区
1 | fflush(stdin);//清除缓冲区,不然会把前面的当成输入 |
- fflush(stdin)用于清空缓区,fflush(stdout)强制输出当前缓冲区中的内容。
- 但是自从VS2015之后,fflush(stdin)就不能用了(使用时不会报错,但是没有清空缓冲区的效果)。
printf 函数调用的一般形式
- printf 函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,调用的一般形式如下:
1
2printf("格式控制",输出表列);
printf("%d",x) - 格式说明:
格 式 符 数据类型说明符 d
以带符号的十进制形式输出整数(正数不输出符号) o
以八进制无符号形式输出整数(不输出前缀0) x
以十六进制无符号形式输出整数(不输出前缀0x) u
以十进制形式输出无符号整数 c
输出单个字符 s
输出字符串 p
指针 f
以小数形式输出单、双精度数,隐含输出6 位小数 e
以标准指数形式输出单、双精度数,数字部分小数位数为6 位 g
选用%f 或%e 格式中输出宽度较短的一种格式,不输出无意义的 0
cin 和cout 格式
- cin 和cout 语句最大的好处是程序可以自动区分变量类型
- cin 函数和cout 函数的头部函数是:iostream
1
2
3
4
5
using namespace std; //命名空间
cin>>变量名;
cout<<变量名1<<变量名2<<"字符"<<endl; //endl为换行符 - cout 执行输出操作后,数据并非立刻传到输出设备,而是先进入一个缓冲区,等时机适当时(如设备空闲)再由缓冲区传入,而printf 函数是直接打印到屏幕上
- C 语言的输出/输入语句(printf、scanf)不要和C++的输出/输入语句(cout、cin)混合使用
运算符汇总
- 1)运算符“%”是求余(或称模运算)。
- 2)位操作运算符是按二进制位进行运算的。
① 位与“&”。
② 位或“|”。
③ 位非“~”。
④ 位异或“^”。
⑤ 左移“<<”。
⑥ 右移“>>”。- 3)赋值运算符用于赋值运算。
① 简单赋值“=”。
② 复合算术赋值(+=,-=,*=,/=,%=)。
③ 复合位运算赋值(&=,|=,^=,>>=,<<=)。- 4)条件运算符:这是一个三目运算符,用于条件求值(?:)。
- 5)逗号运算符:用于把若干表达式组合成一个表达式(,)。
- 6)指针运算符:用于取内容(*)和取地址(&)两种运算。
- 7)求字节数运算符:用于计算数据类型所占的字节数(sizeof)。
- 8)特殊运算符:
① 括号“()”。
② 数组下标“[]”。
③ 结构成员(→和.)。
switch语句
- 并行分支判断语句
switch()
的一般形式为:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16switch(表达式K){
case 常量表达式k1://常量表达式ki 是常数或ASCII 码
语句段1;
break;
case 常量表达式k2:
语句段2;
break;
.
.
.
case 常量表达式kn:
语句段n;
break;
default : 语句段n+1;//default 语句可以缺省,即匹配失败后,程序直接退出switch 语句。
}
C 语言控制语句
C 语言常量与宏
- C 程序设计中一个重要的原则是,所有在程序中使用的常量都应用宏
define
在头部文件说明, - 这样,一旦常量的值需要改变,则仅仅是头部定义处需要修改,而与程序中引用该常量的语句无关
- 例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using namespace std;
int main()
{
int x = 0;
int age[AMOUNT] = { 19,18,19,20,21,18,20,20,19,20};
for (int i = 0; i < AMOUNT; i++)
{
if (age[i] >= MINIMUM)
x++;
}
cout << "x=" << x << endl;
return(0);
}