1、异常处理机制

  一般来说,异常处理就是在程序运行时对异常进行检测和控制。而在C++ 中,使用 try-throw-catch模式进行异常处理的机制。

#include<iostream>
using namespace std; int Fib(int n)
{
if (n <= )
throw n;
if (n >= )
throw "n>=47 overflow";
if (n == || n == )
return ;
else
return Fib(n - ) + Fib(n - );
} void main()
{
int n, fn;
try
{
cin >> n;
cout << Fib(n) << endl;
}
catch (int m)
{
cout << "运行D异常,n=" << m << endl;
}
catch (char *s)
{
cout << s << endl;
}
system("pause");
}

  注意:

  (1)C++中,异常的引发和处理不在一个函数中,上层可以根据不同类型的异常进行处理;按照栈模型处理,一层层传递;

  (2)如果 接受异常的时候,使用一个异常变量,则copy 构造异常变量;

  (3)使用 引用的话,会使用 throw 时候的那个对象;

  (4)指针可以和引用、元素写在一起,但是 引用 和 元素 不能写在一起;

  (5)类对象时,使用引用比较合适。

 2、标准IO输入输出关系图

  iostream 是输入/输出流类,由 istream、ostream 两个基类共同派生出来。

 3、标准输入流对象

 (1)cin.ignore(2); //忽略两个字符位置

#include<iostream>
using namespace std; //标准输入流对象 cin void main()
{
/*
// 输入遇到 空格 即停止接受数据,
char mybuf[1024];
int myInt;
*/ // 读取数据时包含 空格
char ch,a,b,c;
while ((ch = cin.get()) != EOF)//ctrl+z 结束
{
cout << ch << endl;
} cin.get(a);// 只读取缓冲区的第一个字符
cin.get(b);
cin.get(a).get(b);//因为返回的是引用,所以可以链式编程 // getline():可以从输入流中读取多个字符,可以指定输入终止字符(默认是换行符),
// 读取完成后,从读取的内容中删除该终止符。
//输入:aa bb cc dd
//输出:buf1:aa ,buf2: bb cc dd
char buf1[], buf2[];
cin >> buf1;//只保存第一个,遇到空格即停止
cin.getline(buf2, );//保存空格,遇到 换行符 即停止。 system("pause");
}

4、标准输出流对象

  1. cout:标准输出,缓冲区满时被输出;
  2. cerr:标准错误输出,没有缓冲,发送给他的内容立即被输出;
  3. clog:类似于 cerr, 但是有缓冲,缓冲区满时被输出;

  使用成员函数或者操作符设置输出格式,操作符在标准头文件 iomanip 中定义。

  1. cout.put('h').put('e') << endl;:输出单个字符;
  2. char *p = "hello";

    cout << *p << endl;//只输出第一个字符

    cout.write(p, strlen(p)) << endl;   //对于指针内容的输出,可以控制输出内容的大小
    cout.write(p, strlen(p)-2) << endl;

  3. stefill('*')、fill('*'):设置填充字符为 *;
  4. setw(n) 、width(n):设置输出宽度
  5. setprecision(n) 、precision(n):显示小数精度为 n 位
  6. left 、right:左对齐、右对齐
  7. dec、 hex 、oct:十进制、十六进制、八进制

C++(四十六) — 异常处理机制、标准IO输入输出的更多相关文章

  1. NeHe OpenGL教程 第四十六课:全屏反走样

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  2. 四十六、android中的Bitmap

    四十六.android中的Bitmap: http://www.cnblogs.com/linjiqin/archive/2011/12/28/2304940.html 四十七.实现调用Android ...

  3. Android简易实战教程--第四十六话《RecyclerView竖向和横向滚动》

    Android5.X后,引入了RecyclerView,这个控件使用起来非常的方便,不但可以完成listView的效果,而且还可以实现ListView无法实现的效果.当然,在新能方便也做了大大的提高. ...

  4. “全栈2019”Java第四十六章:继承与字段

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. 第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么

    第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么 Sigma协议 Sigma协议是Alice想要向Bob证明一些东西的协议(Alice知道一些秘密).他们有下面的一般范式:Al ...

  6. Python笔记(四):异常处理机制与 open()

    (一)  异常处理机制概述 就像日常生活中会遇到各种意外情况一样(例如:你可能考虑过如果中了500w该怎么做),代码运行过程中也会遇到这种意外情况,python提供了这么一种机制,处理意外情况(就像如 ...

  7. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十(四十六)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  8. Deep learning:四十六(DropConnect简单理解)

    和maxout(maxout简单理解)一样,DropConnect也是在ICML2013上发表的,同样也是为了提高Deep Network的泛化能力的,两者都号称是对Dropout(Dropout简单 ...

  9. Python之路(第四十六篇)多种方法实现python线程池(threadpool模块\multiprocessing.dummy模块\concurrent.futures模块)

    一.线程池 很久(python2.6)之前python没有官方的线程池模块,只有第三方的threadpool模块, 之后再python2.6加入了multiprocessing.dummy 作为可以使 ...

随机推荐

  1. xcode简单教程

    1.使用Xcode软件.Xcode是一个苹果系统上的集成开发环境(IDE),就是说用Xcode就能编写C语言程序,并编译运行.也能开发ios程序等,是一种软件.在windows上类似这种能编c语言的还 ...

  2. kubernetes-通过VMware搭建k8s集群遇到的问题

    VMWare版本:14.13 Centos版本:CentOS-7-x86_64-DVD-1810.iso 遇到的问题:ping不通 报could not resolve host这个错误 解决办法:参 ...

  3. 【loj6538】烷基计数 加强版 加强版 Burnside引理+多项式牛顿迭代

    别问我为啥突然刷了道OI题,也别问我为啥花括号不换行了... 题目描述 求含 $n$ 个碳原子的本质不同的烷基数目模 $998244353$ 的结果.$1\le n\le 10^5$ . 题解 Bur ...

  4. Git 查看更改

    当向仓库中添加文件或删除文件后,可能需要查看更改. 查看更改有多种方式. 1.查看状态 # git status 结果 1 2 # 位于分支 master 无文件要提交,干净的工作区 2.查看日志 # ...

  5. 【剑指offer】数组在排序数组中出现的次数

    题目描述 统计一个数字在排序数组中出现的次数. 分析:数组有序,采用二分查找无疑 两种方法,时间复杂度差不多,都是利用二分查找,不过统计k出现的次数有所不同而已 方法1:二分查找k,找到任意一个k的下 ...

  6. Word章 节标题自动编号并由此自动生成目录 -- 含视频教程(1)

    1. 写论文之前事先调好 写论文的时候,难免要用到章节,如何实现下图的效果呢? 其实结合用好两个功能就行了: >> 视频教程链接:B站,速度快,清晰 事先调好,可以给后续工作带来很多便利, ...

  7. flask源码系列

    更新中 HTML文档中元素存在,但是在浏览器中不显示.一般用于配合JavaScript代码使用. 04 LocalStack和Local对象实现栈的管理 05 Flask源码之:配置加载 06 Fla ...

  8. C 猜猜猜😀文字小游戏

    前言 - 随机性 随机数生成 - https://zh.wikipedia.org/wiki/%E9%9A%8F%E6%9C%BA%E6%95%B0%E7%94%9F%E6%88%90 没啥事情, 写 ...

  9. Linux查看CPU信息计算CPU核数量

    1. 物理CPU的个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2. 每个物理CPU的核心数量: ...

  10. vscode 前端常用插件推荐

    1.  vscode 简介vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重新定义(redefined)了代码编辑器.当前市面上常用的轻型代码编辑器主要是:sublime,n ...