C++文件流

iostream 提供了cin cout 分别用于从标准输入读取流和向标准输出写入流
cout 标准输出 屏幕 输出写入
fstream文件流

cin 从标准输入读取
cout 向标准输入写入

ofstream 向文件写入
ifstream 从文件读取
fstream 从文件读取、向文件写入

文件处理 <iostream>
<fstream>
打开文件 从文件读取信息或者向文件写入信息ofstream ifstream;
必须先打开
ofstream和fstream对象都可以用来打开文件进行写操作
打开文件进行读取ifstream fstream

open()函数标准语法
open()函数是fstream ifstream ofstream对象的一个成员
void open(const char *filename,ios::openmode mode);
open()成员函数的第一个参数指定要打开的文件的名称和位置 要打开的文件的名称位置,第二个参数定义文件被打开的模式
ios::app
ios::ate 文件打开后定位到文件末尾
打开模式
iso::in
ios::out 写入
ofstream 写入
ios::trunc 文件已经存在 内容将在打开文件之前被切段 文件长度为0
两种或是两种以上模式集合使用
写入模式ios::out
ios::in 读取
ifstream

ofstream

打开一个文件用于读写
fstream afile;

声明对象
类对象成员
fstream ffile
ffile.open("file.dat",ios::out | ios::in)

关闭文件
程序终止 会自动关闭刷新流 释放所有分配的内存 关闭打开的文件
函数是 类对象的成员
fstream ifstream ofstream类对象成员
void c loese()

写入文件
流插入运算符<<向文件写入信息
输出信息到屏幕 ofstream fstream

刘提取 读取
ifstream fstream

流插入

文件位置指针
istream和ostream都提供了用于重新定义文件位置指针的成员函数重新定位文件位置指针函数成员函数包括关于
istream seekg("seek get")

文件位置指针
file seek pointer;
position

istream ostream 提供了用于重新定位文件位置指针的成员
重新定位文件位置指针的成员函数
seekg 长整形 指定查找方向

fileObject.seekg(n);
把文件的度读指针从fileObject当前位置向后移n个字节

fileObject.seekg(n,ios::end)
文件的读指针从fileObjace末尾往回移动n个字节

定位到fileObject末尾
fileObject.seekg(0,ios::end);

写(输出) 与 流插入运算符<<
读(输入) 与 流提取运算符 >>
exception 异常程序在执行期间产生的问题
程序运行时发生的特殊情况异常提供了一种转移程序控制权的方式
c++异常处理涉及到三个关键字try catch throw
throw问题出现 程序抛出异常 通过throw关键字完成
catch 想要处理问题的地方,通过异常处理程序捕获异常catch关键字 catch捕获异常

try
try中的代码标识将被激活的特殊异常 try跟多个catch
有一个块抛出异常 捕获异常的方法使用try catch try块中放置可能抛出异常的 代码
try中放置可能抛出异常的代码,try块中的代码被称为保护代码
try放置可能抛出异常的代码,try块中的 代码被称为保护代码

try
{
//保护代码
}catch(ExceptionName e1)
{
//catch block
}catch(ExceptionName e2)
{
//catch block
}catch(ExceptionName eN)
{
//catch block;
}

C++异常处理
执行期间产生的问题
运行发生的特殊情况 异常提供了一种转移程序控制权的方式
throw 出现问题 程序抛出异常
catch 想处理问题的地方 通过异常处理程序捕获异常 catch关键字用于捕获异常
try块中的代码标识将被激活的特定异常
try块代码标识将被激活的特定异常
try块中的保护代码标识将被激活的特定异常
malloc() new不只是分配内存任何 动态分配内存的变量不再需要使用 delete操作符释放占用内存
delete pvalue;
堆:函数中暂时未使用的内存 在程序运行 用于动态分配的内存
栈:函数中所有申明的变量使用的内存都是

stack
namespace
区分它们 使用名字之外使用一些额外的信息 std::
应用程序
可用的库中也存在一个相同的函数
编译器无法判断 那个
命名空间 作为附加信息来区分库相同名称的标识
上下文
使用命名空间定义了上下文 命名空间就是定义了一个范围
定义命名空间
命名空间的定义使用关键字namespace using namespace std;
命名空间的定义使用关键字namespace 后跟命名空间的名称;
namespace namespace_name
{
//

为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称
name::code; code 变量函数
命名空间如何为变量或函数等实体定义范围
命名空间如何为变量或函数等实体定义范围
using
使用using namespace 這样在使用命名空间时就可以不用在前面加上命名空间的名称
這个指令告诉编译器 后续的代码将使用指定的命名空间中的名称
using namespace 使用命名空间 不用在前面加上命名空间的名称 告诉编译器 后续的代码将使用指定的命名空间名称

using指令 指定命名空间中的特定项目
使用std命名空间的cout
using std::cout;

命名空间中特定名称
using namespace::item
整个命名空间
using namespace namespaceName;
随后代码 使用cout不用加命名空间名称作为前缀
但是std命名 空间其他项目仍加上命名空间名称作为前缀
using指令引入的名称遵循正常的范围规则

using指令引入的名称遵循正常的范围规则 名称从使用using指令可见
using
命名空间可以定义在几个不同的部分
不连续命名空间
命名空间定义在几个不同的部分命名空间由几个单独定义的部分组成命名空间的各个组成部分可以分散在多个文件

具体到那个命名空间下的项目item using namespaceName::item
引入命名空间 下 的所
using namespace namespaceName

模板
泛型编程的基础
泛型编程以一种独立任何特定类型的方式编程
泛型编程即以一种独立于任何特定类型的方式编写代码

库容器 迭代器
template 模板泛型编程的
函数模板
template <class type> ret-type func-name(parameter list);
template
模板支持参数化多态工具 模板使用户为类或者函数
模板 使用模板 可以使用户为类或者函数声明一种一般模式 是用户为类或函数申明为一种一般模式
使得类中的某些数据成员或者成员函数的参数
模板支持参数化多态 模板可以使用户为类或者函数声明一种一般模式
类中 的某些数据成员或者成员函数的参数 返回值取得任意类型
模板 是一种对类型进行参数化的工具
让程序的实现与类型无关

模板的声明定义只能在全局
不能在main函数中声明或定义模板

既可以在该函数中使用内置类型的地方都可以使用模板形参参数
模板形参需要调用该模板函数 提供的模板实参来初始化模板形参
一旦编译器确定了实际的模板实参类型就称实例化为函数模板的一个实例
函数模板调用
都是以template开始后接模板形参列表组成 模板形参列表 模板形参不能为空
typename class 一样表明后面的符号为一个类型
定义模板
表明后面的符号为类型
template<typename T>

使用嵌套依赖类型
nested depended name

多线程 多任务处理的特殊形式
多任务处理允许让电脑同时运行多个程序
多线程 task 多任务 多线程 多任务
多任务处理允许让电脑同时运行两个

infos的更多相关文章

  1. hdu 1047 (big integer sum, fgets or scanf, make you func return useful infos) 分类: hdoj 2015-06-18 08:21 39人阅读 评论(0) 收藏

    errors made, boundary conditions, <= vs < , decreasing vs increasing , ++, –, '0'/'1' vs 0/1 p ...

  2. error Infos

  3. java MongoDB driver error infos

    DataTables warning: table id=dateTable - Ajax error. For more information about this error, please s ...

  4. openStack error infos 调试

    glance image-create --name "RuiCheck" --disk-format qcow2 --container-format bare --is-pub ...

  5. one Infos

    Backend Server is still running (PID:). Please try 'euc-server stop' first. (原因很简单,进程控制脚本无restart函数功 ...

  6. Infos - 通过搜索引擎获取信息与数据

    常用搜索引擎命令 site 用来查询网站收录量. 比如site:http://www.cnblogs.com/ inurl 查URL中包含的元素,比如inurl:bbs ,搜索出URL包含bbs的页面 ...

  7. Android之SQLite数据存储

    一.SQLite保存数据介绍 将数据库保存在数据库对于重复或者结构化数据(比如契约信息)而言是理想之选.SQL数据库的主要原则之一是架构:数据库如何组织正式声明.架构体现于用于创建数据库的SQL语句. ...

  8. Struts2日期类型转换

    针对日期类java.util.Date进行类型转换,要求客户端使用"yyyy-MM-dd","yyyy/MM/dd"中的任意一种输入,并以"yyyy- ...

  9. Java豆瓣电影爬虫——抓取电影详情和电影短评数据

    一直想做个这样的爬虫:定制自己的种子,爬取想要的数据,做点力所能及的小分析.正好,这段时间宝宝出生,一边陪宝宝和宝妈,一边把自己做的这个豆瓣电影爬虫的数据采集部分跑起来.现在做一个概要的介绍和演示. ...

随机推荐

  1. JAM计数法(模拟)

    题目描述 Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字 ...

  2. WPF控件开源资源

    (转)WPF控件开源资源 Textbox Drag/Drop in WPFhttp://www.codeproject.com/Articles/42696/Textbox-Drag-Drop-in- ...

  3. Selenium2+Python自动化学习笔记(第1天)

    参考[http://blog.csdn.net/henni_719/article/details/51096531]大神写的笔记,多谢大神共享. 哈哈,今天又找到一位大神写的Selenium2+Py ...

  4. jgit - java实现git操作

    在做一个项目中需要用到远程仓库,本来想使用svn的,但是svn的java api网上的资料很少,而且与git相比,svn显得笨重且不方便,因此放弃了svn转而使用git.java git api - ...

  5. [Hive]HiveServer2概述

    1. HiveServer1 HiveServer是一种可选服务,允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果.HiveServer是建立在Apache ThriftTM(http: ...

  6. EasyDSS流媒体服务器出现no compatible source was found for this media问题的解决

    在EasyDSS流媒体服务器的客户反馈中,我们遇到这样一个现象,在chrome中经常会出现RTMP/HLS流无法播放的问题: 这个问题复现的几率比较低,因为chrome禁止了flash的加载,这也从另 ...

  7. 学习nodejs部分基础内容入门小结

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Node.js 的包管理器 n ...

  8. 用java网络编程中的TCP方式上传文本文件及出现的小问题

    自己今天刚学java网络编程中的TCP传输,要用TCP传输文件时,自己也是遇到了一些问题,抽空把它整理了一下,供自己以后参考使用. 首先在这个程序中,我用一个客户端,一个服务端,从客户端上传一个文本文 ...

  9. 人生苦短之我用Python篇(paramiko模块)

    该模块机遇SSH用于连接远程服务器并执行相关操作 基于用户名密码连接: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在kno ...

  10. 简单实用的跨域表单POST提交

    我们这里使用了iframe嵌套form表单POST提交,很简单,却能满足get|post等任何复杂情况的要求:缺点是没有返回值. 针对需要的地方加上一个iframe嵌套并塞入隐藏form表单,然后获取 ...