学完此节便掌握了基本知识,
掌握了C++基本知识,
便可以入门了。
入门C++
异常
异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。
异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。
异常定义
-
异常:发现错误,不会处理。
struct MyException : public exception//自定义异常struct 和class 权限不同 { const char * what () const throw ()//重写继承虚函数 { return "C++ Exception";//string -> 转 char* .c_str(); } }; try//下面代码可能出现异常(错误) 包含代码块 { //若干操作……中存在异常 throw MyException();//抛出异常 //抛出异常必须处理 } catch(MyException& e)//捕获此类异常 { std::cout << "MyException caught" << std::endl; std::cout << e.what() << std::endl; } catch(std::exception& e)//捕获异常 并处理异常 { //其他的错误 } catch(……)//其它异常…… { //exception e,exception *e,exception &e(推荐);生命周期不同 }
- throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。
- catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。
- try: try块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。
- 栈解旋:异常被抛出后,从进入try块起,到异常被抛掷前,这期间在栈上构造的所有对象,都会被自动析构。析构的顺序与构造的顺序相反,这一过程称为栈的解旋(unwinding).
- 异常接口声明(Qt有效):参考
void function() throw(int,char,…) 只能抛出int 或char类型。 - 异常继承多态:

输入输出
输出分类
- 标准I/O: 对系统指定的标准设备的输入和输出。即从键盘输入数据,输出到显示器屏幕。这种输入输出称为标准的输入输出,简称标准I/O。
- 文件I/O: 以外存磁盘文件为对象进行输入和输出,即从磁盘文件输入数据,数据输出到磁盘文件。以外存文件为对象的输入输出称为文件的输入输出,简称文件I/O.
- 串I/O:对内存中指定的空间进行输入和输出。通常指定一个字符数组作为存储空间(实际上可以利用该空间存储任何信息)。这种输入和输出称为字符串输入输出,简称串I/O。
- C++编译系统提供了用于输入输出的iostream类库。

5. 程序执行过程

标准输入输出
-
cin.functionX()参考这里
//标准输入流对象cin,重点掌握的函数 cin.get() //一次只能读取一个字符 cin.get(一个参数) //读一个字符 cin.get(两个参数) //可以读字符串 //链式编程 char char1, char2, char3, char4; cin.get(char1).get(char2).get(char3).get(char4); cin.getline()//cin.getline(buf,1024);cin.getline() //1、属于istream流,而getline()属于string流,是不一样的两个函数 //2、当同时使用cin>>,getline()时,需要注意的是,在cin>>输入流完成之后,getline()之前,需要通过 str="\n"; cin.ignore(n)//忽略缓冲区当前字符,n忽略字符数,默认一个 cin.peek()//偷窥下缓冲区的数据 cin.putback()//将数据放回缓冲区 -
cin>>
一. cin>> 该操作符是根据后面变量的类型读取数据。 输入结束条件 :遇到Enter、Space、Tab键。 对结束符的处理 :丢弃缓冲区中使得输入结束的结束符(Enter、Space、Tab) -
cout
cout.flush() //刷新缓冲区 Linux下有效 cout.put("A") //向缓冲区写字符 char buf[1024] = "AA" cout.write(buf,strlen(buf)) //从buffer中写num个字节到当前输出流中。 -
格式化输出
a. 控制符格式化输出
b.使用流对象输出//流成员 int number = 99; cout.width(20); cout.fill('*'); cout.setf(ios::left); cout.unsetf(ios::dec); //卸载十进制 cout.setf(ios::hex); cout.setf(ios::showbase); cout.unsetf(ios::hex); cout.setf(ios::oct); cout << number << endl; //控制符 int number = 99; cout << setw(20) << setfill('~') << setiosflags(ios::showbase) << setiosflags(ios::left) << hex << number << endl;
文件输入输出
具体内容参见
头文件:#include < fstream >
在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。
open() 函数的标准语法,open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
void open(const char *filename, ios::openmode mode);
当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。
下面是 close() 函数的标准语法,close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
void close();
#include <fstream>
#include <iostream>
using namespace std;
int main ()
{
char data[100];
// 以写模式打开文件
ofstream outfile;
outfile.open("afile.dat");
cout << "Writing to the file" << endl;
cout << "Enter your name: ";
cin.getline(data, 100);
// 向文件写入用户输入的数据
outfile << data << endl;
cout << "Enter your age: ";
cin >> data;
cin.ignore();
// 再次向文件写入用户输入的数据
outfile << data << endl;
// 关闭打开的文件
outfile.close();
// 以读模式打开文件
ifstream infile;
infile.open("afile.dat");
cout << "Reading from the file" << endl;
infile >> data;
// 在屏幕上写入数据
cout << data << endl;
// 再次从文件读取数据,并显示它
infile >> data;
cout << data << endl;
// 关闭打开的文件
infile.close();
return 0;
}

1454

被折叠的 条评论
为什么被折叠?



