clutter recoder
cin >> ch;
cin.get(ch);区别读取输入是否忽略空格、制表等;
char ch;
int count = ;
cout << "Enter characters;enter # to quit: \n";
cin.get(ch);
while (ch != '#')
{
cout << ch;
++count;
cin.get(ch);
}
cout << endl;
cout << count << " characters read \n";
cin >> ch;忽略空格等输入并 不计入字符输入统计的范畴内;
cin.get(ch)则不忽略空格等,同时通过控股等计数;
两个输入 都预先被缓冲,按下键盘时发送给程序处理;
对于vector 可伸缩长度的数组 除了在尾部插入 删除数据 其他 任何部分插入 删除数据线性的复杂度
vector 除了再尾部插入 删除 效率恒定 在头部 中间 做删除 插入操作 效率都是线性的
访问vector可以根据下标直接访问 访问任何位置的元素 效率都是恒定
基本关联式容器
set multiset map multimap map set;
数学中集合
容器适配器
基本容器实现的新容器
新容器可以描述更高级的数据结构
容器适配器有3种
Stack queue priority
priority_queue
stack queue priority_queue
先进后出特性
queue 队列 先进先出特性
priority_queue带优先级的队列 元素可以按照某种优先级顺序进行
定义了 一个stack容器实体
入 push pop出 即删除顶数据
top
返回顶 但是并不删除
empty 判断是否为空
输入流 输入的过程是這样的 键盘输入完数据按下回车键 该行数据就被写入输入缓冲区 之后输入操作符从缓冲区提取数据 提取过程中忽略空格 tab键 换行符等空白字符
输入流正常cin返回值true
cin遇到错误的字符或文件结束符
文件结束标识采用宏定义形式定义出来的
宏定义
#define EOF (-1);
cin直接进行忽略 而是将它们当成一个字符运行用户按下enter会将先前的输入全都输出
但并不是enter就是文件结束符enter不是文件结束符
程序运行之所以会发生這样的情况
因为enter键带动一次清扫缓冲区行为每当用户输入一行字符串按下 enter 清扫一次缓冲区
将先前输入内容从缓冲区读出
文件结束符 在不同的编译器
带有一个参数的get函数
带有一个参数的get函数 参数是一个char型变量 用于存放读入的单个字符 同时函数的返回不再是读入的字符而是bool
读取成功是 返回非零 读取失败返回0相当于false 此时停止读入字符
带3个参数
第一个参数是 字符数组或是字符指针
用于将读入的字符串
函数读取成返回一个非0
0
读入失败或是遇到文件终止返回0 false;
数组 指针 长度 结束标志;
结束符
第一次读取 还没有读到指定长度的字符时 就已经碰到 结束字符了
getline读取输入的字符终止字符不被读入
碰到一个终止字符终止本次读入操作 然后指针向后移动一位
eof用于判断读入数据是否遇到文件结束符
如果遇到文件结束符则返回true
功能是从输入流中读入一个字符
get遇到空格 tab换行符
char
带有一个参数的get 参数是char 用于存放读入的单个字符
同时函数的返回值不再是读入的字符而是bool类型 读取成功函数返回非0
带有一个参数的get函数,其参数是一个char型变量,用于存放读入的单个字符
函数的返回值不同无参的get() == eOF返回读入的字符而是返回布尔
车工读取返回一个非0值,失败返回0false
c.get(a)
char a;
while(cin.get(a))//读取成功时
带有3个参数的get函数第一个参数是字符数组或字符指针 用于将读入的字符串存入到字符数组或指针所指向的内存空间
用于将读入的字符串存入到字符数组或指针所指向的内存空间
第二个参数为读入字符个数 最后一个参数读取的终止字符
如果未读满指定的个数就碰到终止字符 字符 会提前终止读入字符 函数读取成功返回一个非0
读入失败或遇到文件终止符则返回0 false
带有3个参数的get函数第一个参数是字符数组 字符指针
带有3个参数的get函数第一个参数是字符数组或字符指针,用于将读入的字符串存入到字符数组或指针所指的内存
第二个参数为读入字符个 最后一个读取的
依次读入输入字符 调用get函数 每次读入的字符只有9个
这是因为字符数组末尾'\0';
getline
终止符不是
using文件结尾 跳出循环;
eof用于判断读入数据是否遇到文件结束符
cin.eof
cin.eof()用于判断读入数据是否遇到文件结束符,如果遇到文件结束符True
peek
用于返回当前指针所指的字符 返回当前指针所指的字符
并且不会移动指针
如果当前指针所指向的是文件结束符
-1 EOF
putback 将get getline函数读取到的字符重新插入到缓冲区当前指针所指位置 后面任然读取字符
putback(char)函数是将get或getline函数读取到的字符重新插入到缓冲区当前指针所指的位置
文本文件 二进制文件;
文本文件每一个字节存放是一个ASCII,代表一个字符
二进制文件是将内存中的数据按照其在内存中的存储形式
二进制文件是将内存数据按照其在内存中的存储形式原样存放在磁盘 文本文件用记事本打开,显示的是字符
记事本打开二进制文件则显示乱码
文本文件
cout cerr iostream
文件操作fstream
ifstream
ofstream
文件打开操作
ifstream ofstream 成员函数 函数用于类的对象调用
open函数
第一个参数是需要打开的的文件名 参数可以是字符指针字符数组
输入输出
输入输出格式
ios::in 以输入方式打开文件
ios::out 输出方式打开 ofstream output("output.tct",ios::out)文件不存在新建 文件存在就将原有内容全部清空
append
输出的数据追加到文件末尾
iso::app
ios::ate打开文件并将指针定位到文件末尾
打开 并将指针定位到文件末尾
指针定位到文件末尾
ios::trunc
打开文件 文件不存在创建 存在 清空原有文件内容
truncate
ios::binary 二进制方式打开
ios::二进制方式打开,如果不指定则默认采用文件方式打开
ios::in | ios::out
ios::in | ios::bingary
ios::out | ios::binary
ios::out | ios::binary
0 false
open函数打开失败返回0 false
程序中检测文件是否打开成功
为文件处理完数据 关闭
Object.close();
文本文件的读写操作 两种 方式
输入输出操作符
<< >>
put
get getline
函数只能用于处理字符
输入输出操作符
>> << 重载了 输入输出操作符 可以处理所有内建数据类型
从文件输入输出与 标准输入输出其实一样
只不过将类对象cout cin 换成了 ofstream ifstream
先从input.txt 文件读取数据存入数据 然后再将数组数组打印到显示器 之后再将数据写入到output.txt
ofstream类定义对象用于输出文件
ifstream类定义对象输入到文件
用fstream类定义对象用于从文件输入 又能输出到文件
针对二进制文件的读写
针对二进制文件的读写输入输出类定义
针对二进制文件的读写,输入输出类中定义了专门的函数read write
istream & read(char * buffer,int size);
ostream & write(const char * buffer,int size)
char指针buffer是指向内存中的一段存储空间
char指针是只想内存中的一段存储空间
size 存储空间大小
需要读写内容的字节数
读写二进制的函数
系统提供了一些操作文件读写指针位置的成员函数
操作文件读写指针位置的成员函数
将文件读写指针移动到指定位置并操作数据
操作文件读写指针
操作文件读写位置的 将文件读写指针移动到指定位置并操作数据
gcount()返回最后一次输入所读入的字节数
tellg()返回输入指针当前位置
seekg将输入文件中指针移动到指定的位置
seekg
cin对象
char字面值
书写字符常量方式多种
char字面值
书写字符常量常规字符 将字符用单引号括起来
字符的数值编码
ASCII
数值编码 字面值 更加清晰 不需要知道编码
这种初始化常用于给复杂的数据类型提供值列表
变量的类型可能无法赋予给它的值
条件是编译器知道目标变量能够正确地存储赋给它的值
const int code = 66;
计算表达式中 bool char unsigned char signed char short int
整形提升
char signed unsigned char short 转成int
(typeName) value
typeName (value);
变量初始化
4个强制类型转换
static_cast<>
static_cast<typeName> (value);
C++引入4个强制类型转换运算符
static_cast可用于将一个
static_cast<>比传统强制类型转换严格
c强制类型转换由于有过多的可能性及其危险
my double Eleven Shopping list/wishlist:
first: a pair of fake leather shoes;
second: a fashion jacket;
third: nice business pants;
fourth: handsome business shoulder bag;
signature:Ruiy.
cin对象支持3种不同模式的单字符输入;其用户接口各不相同
while循环中使用模式
sentinel character;
程序在输出时省略了空格
cin忽略空格换行符
cin 读取char值 与读取其他基本类型一样 cin将忽略空格和换行符 cin忽略换行符和空格 输入的空格没有被回显 也没有被包括在计数内
cin输入被缓冲
cin输入被缓冲 意味着只有用户按下回车键 他的输入内容才会被发给程序
就是运行程序时 可以在#终止输出字符后面输入别的字符的原因 按下回车键 整个字符序列被发送给程序 但程序在遇到#后结束对输入的处理
cin输入被缓冲
按下回车键 输入才会被发送程序
cin对象忽略换行符和空格
输入先被缓冲,按下回车键再被发送给程序处理
cin.get()
读取字符输入,键盘或是来自文本文件
逐个字符读取输入的程序需要检测每个字符
逐个字符读取输入的程序检查每个字符 空格 制表换行
逐个字符读取输入的程序需要检测每个字符
cin所属类istream中包含一个能够满足这情况成员函数
具体地说,成员函数cin.get(ch)读取输入中的下一个字符(即使是空格)并将赋给变量ch
cin >> ch
cin.get(ch);
现在 程序回显每个字符
cin.get(ch)调用将一个值放入ch,意味修改变量
C中要修改变量值 将变量的地址传递给函数
引用类型
cin.get(ch)调用将一个值放在ch变量
這意味着修改该变量值c中要修改变量的值 需将变量的地址传递给函数
只需要将参数申明为引用
引用C++新数据类型;
函数可以修改参数的值
cin.get()的一个版本接受两个参数
数组名 字符串char*的地址
数组名是第一个元素的地址 字符串数组名的类型char*
cin.get()不接受任何参数
函数重载的oop特性
cin.get()
cin.get(ch)
cin.get(arr,size);
函数重载允许创建多个同名函数 条件是参数类别
编译器将找到char* int作为参数的cin.get()版本
文件尾条件
输入结束难令人满意
這样的符号可能就是合法输入组成部分
输入来自于文件,使用功能更强大技术 输入来自于文件 使用功能更强大技术 检测文件尾
EOF
C++输入工具和操作系统协同 检测文件尾并将信息告知程序
读取文件信息 cin和键盘输入
clutter recoder的更多相关文章
- 【GStreamer开发】GStreamer基础教程15——继承Clutter
目标 Clutter是一个开源的库,用来创建快速.可移植和动态的GUI.GStreamer可以通过cluttersink这个element把clutter集成进来,允许视频像纹理一样使用.本教程会展示 ...
- error recoder,error debug for openStack kilo
- Linux 桌面美化那点事儿
各个 Linux 桌面发行版刚拿到手的时候,或多或少都有点儿不满意,对它们进行一些改造是必须的.网上不乏各种 Linux 桌面美化的教程和经验贴,对我们这些 Linux 爱好者来说都是很好的参考资料. ...
- Reactor by Example--转
原文地址:https://www.infoq.com/articles/reactor-by-example Key takeaways Reactor is a reactive streams l ...
- Unity 最佳实践
转帖:http://www.glenstevens.ca/unity3d-best-practices/ 另外可以参考:http://devmag.org.za/2012/07/12/50-tips- ...
- java sound初探
网上关于java sound的正规资源讲解的非常好,本文不再给出示例,主要提供一些好的资源,并说说我的一些理解,用于形成对java sound的整体认识. 一.几个词汇 TTS:text-to-spe ...
- openswan-ipsec.conf配置说明
Name ipsec.conf - IPsec configuration and connections Description The optional ipsec.conf file speci ...
- JavaScript(Node.js)+ Selenium自动化测试
Selenium is a browser automation library. Most often used for testing web-applications, Selenium may ...
- AssetBundle loading failed because.....已解决
http://blog.csdn.net/ldghd/article/details/9632455 ***************************** 一 ******* ...
随机推荐
- python中继承和多态
继承和多态 继承 引入继承 我们有这样一个需求 模仿英雄联盟定义两个英雄类 1.英雄要有昵称.攻击力.生命值属性 2.实例化出两个英雄对象 3.英雄之间可以互殴,被殴打的一方掉血,血量小于0则判断为死 ...
- CentOS 7.4搭建Kubernetes 1.8.5集群
环境介绍 角色 操作系统 IP 主机名 Docker版本 master,node CentOS 7.4 192.168.0.210 node210 17.11.0-ce node CentOS 7.4 ...
- ubuntu 添加应用到Dash启动器
打开终端输入 $sudo vim /usr/share/applications/name.desktop name是你的程序标识名称 在打开的编辑器中添加以下内容,这里以配置NetBeans为例: ...
- Codeforces 808G Anthem of Berland【KMP】【DP】
LINK 简要题意 给你一个串s,上面有字母和一些通配符,问你将通配符换成字母之后最多可以出现多少次串t 首先有一个很傻子的做法就是\(dp_{i,j}\)表示s到第i个位置匹配t串前j个字符的完整t ...
- 51nod 1347 旋转字符串
S[0...n-1]是一个长度为n的字符串,定义旋转函数Left(S)=S[1…n-1]+S[0].比如S=”abcd”,Left(S)=”bcda”.一个串是对串当且仅当这个串长度为偶数,前半段和后 ...
- 《selenium2 python 自动化测试实战》(16)——js操作补充
js修改readonly属性 我们看到这里日期框标签中有readonly属性,如果我们直接send_keys就无法输入内容,这时我们需要先去掉readonly属性: js ='document.get ...
- Mac OS安装php-redis扩展
下载php-redis(用于php5.x的版本),地址:https://nodeload.github.com/nicolasff/phpredis/zip/master. 如果是php7.2,选择p ...
- Sprint第一个冲刺(第十天)
一.Sprint介绍 更新工程部署文件:实现了云端登录:设计经营情况以及数据分析界面. 实验截图: 任务进度: 二.Sprint周期 看板: 燃尽图:
- python-生成测试报告-然后自动发送邮件
前两篇单独介绍了生成测试报告和自动发送邮件,那么现在把两者整合到一起:生成测试报告后然后自动发送邮件,这里只是简单的整合实现功能,其实还可以优化的,先用吧,后面再慢慢优化 先看下目录,其实目录还是一样 ...
- PostgreSQL编译安装
PostgreSQL编译安装 安装语言包 ### PostgreSQL 初始化过程中,会读取操作系统字符编码, ### 若程序需要使用zh_CN.utf-8字符编码,需要在PostgreSQL 初始化 ...