Eastsheng's Wiki

C&C++笔记-01

2022-04-02 18:11:28

[toc]

推荐书籍

Visual Studio 2021运行C++,返回值被忽略:“scanf”

清除缓冲区

1
fflush(stdin);//清除缓冲区,不然会把前面的当成输入
  • fflush(stdin)用于清空缓区,fflush(stdout)强制输出当前缓冲区中的内容。
  • 但是自从VS2015之后,fflush(stdin)就不能用了(使用时不会报错,但是没有清空缓冲区的效果)。

printf 函数调用的一般形式

  • printf 函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,调用的一般形式如下:
    1
    2
    printf("格式控制",输出表列);
    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
    #include<iostream>
    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
    16
    switch(表达式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
    #define AMOUNT 10 //宏定义人数 //数组的长度一定要大于或等于要存放的变量数目
    #define MINIMUM 20 //宏定义年龄下限
    #include<stdio.h>
    #include<iostream>
    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);
    }

字符串操作