C++ (五)

    科技2022-08-24  106

    C++的异常机制

    C语言错误处理机制有: 函数返回值 使代码变得更加复杂 异常逻辑和正常代码逻辑混淆 setjmp/longjmp 直接错误跳转 使用方便 但是局部对象得不到析构 C++ 异常处理机制是 throw try-catch 抛出异常 捕获和处理异常 C++ 异常处理机制和python\java都大同小异 try{ //可能发生异常的代码 }catch(异常类型& e){//根据异常类型来捕获异常 }catch(异常类型& e){ }catch(...){//确保一定捕获异常 } 当程序发生异常之后 直接中断代码(不会继承往下执行) 而是抛出一个异常对象 然后到 有catch的分支去进行类型匹配,如果 异常对象 isA 异常类型 则进行对应的catch分支执行代码 如果没有对应的异常类型可以匹配,则会继承往外抛 直到被捕获 或者 默认处理(终止程序,输出异常信息) 如果捕获之后 成员处理,代码可以接着 try-catch分支往后继承正常运行 函数可以有异常说明: 返回值类型 函数名(形参列表)throw (可能抛出的异常类型){ } 如果一个函数没有异常说明,则表明该函数可以抛出任意的异常 如果在一个函数内抛出不在异常说明里的异常类型,则try-catch时无法catch到该异常类型 也就是说try-catch的异常只能是函数异常说明里面的异常类型 函数的异常说明是为了异常时方便去写catch捕获的异常类型 重写时子类不能抛出比父类更多的异常种类(注意种类不是个数) 自定义异常 和 抛出异常 自定义异常一般都继承 exception类

    C++的IO

    cout.setf(ios::left); 标志 功能 用 对象.setf()来设置 boolalpha 可以使用单词"true"和"false"进行输入/输出的布尔值. dec 用十进制格式显示后面的数值. fixed 用正常的记数方法显示浮点数(与科学计数法相对应). hex 用十六进制格式显示后面的数值. internal 将填充字符回到符号和数值之间. left 输出调整为左对齐. oct 用八进制格式显示后面的数值. right 输出调整为右对齐. scientific 用科学记数法显示浮点数. showbase 输出时显示所有数值的基数. showpoint 显示小数点和额外的零,即使不需要. showpos 在非负数值前面显示"+". skipws 当从一个流进行读取时,跳过空白字符(spaces, tabs, newlines). unitbuf 在每次插入以后,清空缓冲区. uppercase 以大写的形式显示科学记数法中的"e"和十六进制格式的"x".

    <iostream>中定义的操作符

    操作符 描述 输入 输出 cout << dec << num << endl; boolalpha 启用boolalpha标志 X X dec 启用dec标志 X X endl 输出换行标示,并清空缓冲区 X ends 输出空字符 X fixed 启用fixed标志 X flush 清空流 X hex 启用 hex 标志 X X internal 启用 internal 标志 X left 启用 left 标志 X noboolalpha 关闭boolalpha 标志 X X noshowbase 关闭showbase 标志 X noshowpoint 关闭showpoint 标志 X noshowpos 关闭showpos 标志 X noskipws 关闭skipws 标志 X nounitbuf 关闭unitbuf 标志 X nouppercase 关闭uppercase 标志 X oct 启用 oct 标志 X X right 启用 right 标志 X scientific 启用 scientific 标志 X showbase 启用 showbase 标志 X showpoint 启用 showpoint 标志 X showpos 启用 showpos 标志 X skipws 启用 skipws 标志 X unitbuf 启用 unitbuf 标志 X uppercase 启用 uppercase 标志 X ws 跳过所有前导空白字符 X

    1.格式化读写 << >> 格式化读取

    2.按字符读写 put get getline()

    3.二进制读写 write read

    Makefile 文件 只会编译修改过的文件

    Processed: 0.008, SQL: 9