1、异常处理机制
一般来说,异常处理就是在程序运行时对异常进行检测和控制。而在C++ 中,使用 try-throw-catch模式进行异常处理的机制。
#include<iostream> using namespace std; int Fib(int n) { if (n <= 0) throw n; if (n >= 47) throw "n>=47 overflow"; if (n == 1 || n == 2) return 1; else return Fib(n - 1) + Fib(n - 2); } 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[256], buf2[256]; cin >> buf1;//只保存第一个,遇到空格即停止 cin.getline(buf2, 256);//保存空格,遇到 换行符 即停止。 system("pause"); }
4、标准输出流对象
- cout:标准输出,缓冲区满时被输出;
- cerr:标准错误输出,没有缓冲,发送给他的内容立即被输出;
- clog:类似于 cerr, 但是有缓冲,缓冲区满时被输出;
使用成员函数或者操作符设置输出格式,操作符在标准头文件 iomanip 中定义。
- cout.put(‘h‘).put(‘e‘) << endl;:输出单个字符;
- char *p = "hello";
cout << *p << endl;//只输出第一个字符
cout.write(p, strlen(p)) << endl; //对于指针内容的输出,可以控制输出内容的大小
cout.write(p, strlen(p)-2) << endl; - stefill(‘*‘)、fill(‘*‘):设置填充字符为 *;
- setw(n) 、width(n):设置输出宽度
- setprecision(n) 、precision(n):显示小数精度为 n 位
- left 、right:左对齐、右对齐
- dec、 hex 、oct:十进制、十六进制、八进制
原文地址:https://www.cnblogs.com/eilearn/p/10988635.html
时间: 2024-10-02 06:57:00