cpp(第十七章)
1.baseic_ostream<charT,traits>& write(const char_type *s,streamsize n),cout.write()第一个参数提供了要显示的字符串的地址,第二个参数
指出要显示多少个字符
2.cout<<hex == hex(cout) 控制符实际上是函数。
3.cout,width()只影响将显示的下一个项目,然后字段宽将恢复为默认值(返回以前的字段宽int)。
4.cout.fill(‘*’) 用*填充字段中未被使用的部分。
5.cout.precision(n) 浮点类型保留n位数,而定点和科学保留n位小数
6.
#include<iostream>
#include<exception>
int mian()
{
std::cin.exceptions(std::ios_base::failbit);
int input;
try
{
while (std::cin>>input)
;
}catch (std::ios_base::failure &bf)
{
std::cout<<bf.what<<"\n";
}
return ;
}
iostate exceptions() const,返回当前mask for the stream;
void exceptions(iostate except),sets a new exception mask for the stream and clears the stream's the stream's error state flags(as if member clear() was called).the exception mask is an internal value kept by all stream objects specifying for which state flags an exception of member type failure(or some derived type) is thrown when set.
cin.exceptions(badbit | eofbit)//setting badbit and eofbit cause exception to be thrown. exceptions()方法返回一个为字段,它包含三位,分别对应eofbit、failbit、badbit。clear()方法将当前的流状态与exceptions()返回的值进行比较。如果在返回值中某一位被设置,而当前状态中的对应为也被设置,则clear()将引发ios_base::failure异常.
7.istream & cin.get(char&) 和 int cin.get() 提供不跳过空白的单字符输入功能。达到文件尾get(char &)返回false,get()返回eof
8.istream & cin.get(char *,int,char)、istream & cin.get(char *,int) 和istream & cin.getline(char *,int,char)、istream & getline(char *,int),第一个参数用于放置输入字符串的内存单元地址,第二个参数比要读取的最大字符数大1(额外的一个字符用于存储结尾的空字符),第三个参数指定用作分解符的字符。区别:get()将换行符留在输入流中,getline()抽取并丢弃输入流中的换行符。get(char*,int)如果没用读取任何字符则设置failbit,getline(char *,int)如果读取了最大数目的字符,且行中还有其他字符,则设置failbit。
9.cin.read(char*,int),读取指定数目的字节,并讲他们存储在指定的位置,read()并不会在输入后面加上空值字符,因此不能将输入转换为字符串(不是专为键盘输入设计的,与write()来完成文件的输入和输出)
10.cin.peek(),函数返回输入中的下一个字符,但不抽取输入流中的字符
11.cin.putback(),函数将一个字符插入到输入字符串中,被插入的字符将是下一条输入语句读取的第一个字符.
12.fstream继承了两个缓冲区一个用于输入,一个用于输出,并能同步化这两个缓冲区的处理。
13.tellg()和tellp,返回一个表示当前位置的streampos值(以字节为单位,从未见开始算起),fstream对象返回的值相同。
14.char* tmpnam(char * filename),字符长度不超过L_tmpname。filename if filename was not NULL. Otherwise a pointer to an internal static buffer is returned. If no suitable filename can be generated, NULL is returned,filename如果是NULL则返回一个指向static buffers。
#include <iostream>
#include <cstdio>
#include <string> int main()
{
std::string name1 = std::tmpnam(nullptr);
std::cout << "temporary file name: " << name1 << '\n'; char name2[L_tmpnam];
if (std::tmpnam(name2)) {
std::cout << "temporary file name: " << name2 << '\n';
}
}
15.内核格式化
#include <iostream>
#include <sstream>
int main()
{
using std::cout;
using std::cin;
using std::endl;
using std::string;
//std::istringstream in_str;
std::ostringstream out_str;
std::stringstream in_out_str;
out_str<<"message!!!";
string str= out_str.str();
cout<<str<<endl;
out_str<<" ahh!!!";
cout<<str<<endl;
cout<<out_str.str()<<endl;
auto cout_p= cout.rdbuf(out_str.rdbuf());
cout<<" guess?!";
cout.rdbuf(cout_p);
cout<<"auto: "<<out_str.str()<<endl;
std::istringstream in_str(str);
string word;
in_str>>word;
cout<<"word:"<<word<<endl;
in_out_str<<str;
cout<<in_out_str.str()<<endl;
in_out_str.get();
if (in_out_str.putback('W'))
{
cout<<in_out_str.rdbuf()<<endl;
}
else
{
cout<<"error putback\n";
}
std::istringstream ins_str(str);
ins_str.get();
if (ins_str.putback('W'))
{
cout<<ins_str.rdbuf()<<endl;
}
else
{
cout<<"error putback\n";
}
ins_str.clear();
if (ins_str.putback('m'))
{
cpp(第十七章)的更多相关文章
- 进击的Python【第十七章】:jQuery的基本应用
进击的Python[第十七章]:jQuery的基本应用
- <构建之法>第十三章到十七章有感以及这个项目读后感
<构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...
- 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索
第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...
- 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...
- [汇编学习笔记][第十七章使用BIOS进行键盘输入和磁盘读写
第十七章 使用BIOS进行键盘输入和磁盘读写 17.1 int 9 中断例程对键盘输入的处理 17.2 int 16 读取键盘缓存区 mov ah,0 int 16h 结果:(ah)=扫描码,(al) ...
- 第十七章——配置SQLServer(3)——配置“对即时负载的优化”
原文:第十七章--配置SQLServer(3)--配置"对即时负载的优化" 前言: 在第一次执行查询或者存储过程时,会创建执行计划并存储在SQLServer的过程缓存内存中.在很多 ...
- 第十七章——配置SQLServer(4)——优化SQLServer实例的配置
原文:第十七章--配置SQLServer(4)--优化SQLServer实例的配置 前言: Sp_configure 可以用于管理和优化SQLServer资源,而且绝大部分配置都可以使用SQLServ ...
- 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置
原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...
- 第十七章——配置SQLServer(1)——为SQLServer配置更多的处理器
原文:第十七章--配置SQLServer(1)--为SQLServer配置更多的处理器 前言: SQLServer提供了一个系统存储过程,SP_Configure,可以帮助你管理实例级别的配置.微软建 ...
随机推荐
- HR最喜欢问的问题_"你的职业规划是什么?"
很多面试官都会问,“你的职业规划是什么?”这个问题往往会难倒很多求职者.今天我跟大家分享,求职者怎样回答,才能更给自己加分 1.对目前自己要从事的这个岗位有清晰的认识,比如这个主要的工作是做什么的,大 ...
- HashMap 构造函数
HashMap总共提供了三个构造函数 /** * Constructs an empty <tt>HashMap</tt> with the default initial c ...
- CodeSmith生成实体的分页读取规则
首先.我得向咱们博客园提个意见,能不能我写的东西就给预保存下呢?刚才我写半天,只因为这个不给力的IE浏览器死了,导致我白写了,如果这要是那个大神直接在这上面写的非常有技术含量的贴着会因此而丢失实在是有 ...
- macOS 下配置 MAMP 开发环境(Mac + Apache + Mysql + PHP)
macOS 中已经内置了 PHP.Python.Ruby.Perl 等常用的脚本语言,以及 Apache HTTP 服务器,所以使用起来非常方便.本文以最新的 macOS Sierra 10.12 配 ...
- php头像上传预览
php头像上传带预览: 说道上传图片,大家并不陌生,不过,在以后开发的项目中,可能并不会让你使用提交刷新页面式的上传图片,比如上传头像,按照常理,肯定是在相册选择照片之后,确认上传,而肯定不会通过fo ...
- Angular回到顶部按钮指令
之前的分页代码指令化在线下测试没有问题,到服务器上就不运行了,所以那个先放一放. 今天来把"回到顶部"按钮指令化.首先是页面html: <!--回弹按钮--> < ...
- Dalsa Sherlock 直连千兆网相机(通用驱动)
支持 Sherlock 7.1.7.2,用于千兆网相机与 Sherlock 的连接. 可适用于很多厂商的相机,如:巴斯勒(Basler),JAI,堡盟相机(Baumer),灰点相机(Point Gre ...
- 如何使用angularJs
本期更新,博主将给大家分享一些AngularJs常用的一些属性和方法,AngularJS 是由 Google 的员工 Miško Hevery 从 2009 年开始着手开发.这是一个非常好的构想,该项 ...
- hdu 2710 Max Factor 数学(水题)
本来是不打算贴这道水题的,自己却WA了三次.. 要考虑1的情况,1的质因子为1 思路:先打表 ,然后根据最大质因子更新结果 代码: #include<iostream> #include& ...
- JAVA自增自减的玄机
先看下面代码: ; i = i++; System.out.println(i); 请问:输出结果为多少? ---------------------------------------------- ...