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,可以帮助你管理实例级别的配置.微软建 ...
随机推荐
- 关于Java中Arrays.sort()方法TLE
最近一直在练用Java写题,今天无意发现一道很简单的二分题(链接),我一开始是直接开int[]数组调用Arrays.sort()去排序,没想到TLE了,原来是因为jdk中对于int[]的排序是使用快速 ...
- 随机抽样一致算法(Random sample consensus,RANSAC)
作者:桂. 时间:2017-04-25 21:05:07 链接:http://www.cnblogs.com/xingshansi/p/6763668.html 前言 仍然是昨天的问题,别人问到最小 ...
- 读APUE分析散列表的使用
最近学习APUE读到避免线程死锁的部分,看到部分源码涉及到避免死锁部分,源码使用了散列表来实现对结构(struct)的存储与查找. 本文不讨论代码中的互斥量部分. #include <stdli ...
- 详解Java反射机制
反射是程序在运行状态下,动态的获取某个类的内部信息的一种操作.例如:类名,包名,所有属性的集合,所有方法的集合,构造方法的集合等.该操作发生在程序的运行时状态,所以编译器管不着有关反射的一些代码,通常 ...
- flex布局下,css设置文本不换行时,省略号不显示的解决办法
大致是有一个main容器是flex布局,左边一个logo固定宽高,右边content动态宽度. <div class="main"> <img alt=" ...
- 关于vs code的个人配置
vs code官方下载地址 : https://code.visualstudio.com/Download 下载好的vs code相当是一款纯文本编辑器,接下来开始进行对其配置: 页面设 ...
- 【运维工程师必知必会】——MySql基础
一.SQL语句 1.分类 DDL(data definition language)数据定义语言(create.alter.drop),管理基础数据.例如:库.表 #运维要熟练,开发也要熟练 ...
- 简介vsftpd及搭建配置
一.简介 FTP(文件传输协议)全称是:Very Secure FTP Server. Vsftpd是linux类操作系统上运行的ftp服务器软件. vsftp提供三种登陆方式:1.匿名登录 2 ...
- Java Socket应用---通信是这样练成的
网络基础简介 Java 中网络相关 API 的应用 Java 中的 InetAddress 的应用 Test01.java package com.imooc; import java.n ...
- abstract、virtual、sealed
abstract与virtual前必有public 1.abstract,抽象 1)只要使用到了abstract定义了方法,那么类就一定得用abstract定义,public abstract,只有抽 ...