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 0;
}

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‘))
    {
时间: 2024-08-01 02:07:44

cpp(第十七章)的相关文章

个人:构建之法第十七章读后感

第十七章在开始讲一个项目中的三个角色: 猪:项目的所有者,成功了是最大收益者,失败了最大损失者 鸡:项目的参与者,成功了得到应得的酬劳,失败了也没什么损失 鹦鹉:项目的外援 这一节应该是给“猪”说的,猪需要弄清团队成员投入/承诺/责任,这很重要,也是猪的责任. 分配好角色后,完成项目的过程也会有各种各样的问题: 在做事上会分为:做事的,不做事的,不让别人做事的,做假事的,假装做事的 项目完成后,如何分配利益又是一个问题:比资历?平均?比效率?团队互评?比犯得过错? 书中提出的解决办法: 20%给

第十四——十七章作业

                                                                                                     第十四章 15.3.1 有些成功人士或公司认为不需要独立的测试角色(Test),你怎么看? 在一些软件公司中,QA的工作中包含了Test的角色,负责验证程序是否符合预先设计的功能和特性.但是QA的工作量是很多的,一个好的QA不仅需要对程序架构有着很好的理解,对程序功能和性能都有着较深的理解,并且要

CSS3秘笈复习:十三章&amp;十四章&amp;十五章&amp;十六章&amp;十七章

第十三章 1.在使用浮动时,源代码的顺序非常重要.浮动元素的HTML必须处在要包围它的元素的HTML之前. 2.清楚浮动: (1).在外围div的底部添加一个清除元素:clear属性可以防止元素包围浮动元素.关键字:left.right或both. (2).浮动外围元素:让包含浮动元素的<div>也浮动.选择这种方法一定要在浮动容器后面的任何元素中添加一个clear属性,确保浮动元素落到容器的下方. (3).利用overflow : hidden.另一种常见的方法是在外围的样式中添加以下属性:

《构建之法》第十七章读后感

通过阅读<构建之法>第十七章,不能说对我造成了什么深远的影响,但是还是感触颇深: 第一,工作分配的重要性,说道工作分配,不得不说我们个小组的组长们,组长不仅仅是一个团队的领导者,更是这个团队的灵魂.它不仅需要了解随时掌握各组员的动向,更重要的是,他需要了解各组员的能力,然后根据个人的能力,然后再去非陪相应的任务,只要这样才能做到“物尽其用”,才能更好的完成我们的项目,有时甚者能更创造出以外的效果,达到更完美的状态.这不仅是组长的能力  其实其无时无刻也体现着我们这个小组的团结力和创造力.当初选

第十七章 路由交换机编程

                第十七章    路由交换机编程 MTU = 64KB 毕竟是理想,现阶段实现起来还是有难度:牵涉到较多问题,与大网同步.流量平衡.时隙交换等.所以,APO还是决定MTU = 48E = 1536B,包含头部2E.帧同步头8B.尾部CRC的4B等:数据包的有效内容(不含头部)为45E = 1440B.头部2E = 64B,其中MAC头14B.IP头18B.TCP/UDP/ICMP头32B. 二层交换机是以存储转发为主设计,三层以上的交换机是以256位差分总线的时隙交

Gradle 1.12 翻译——第十七章. 从 Gradle 中调用 Ant

有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com/1.12/userguide/userguide.html 本文原创,转载请注明出处:http://blog.csdn.net/maosidiaoxian/article/details/41204073 关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qin

2017.2.16 开涛shiro教程-第十七章-OAuth2集成

原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介绍 (1)应用场景 很多开放平台,比如新浪微博开放平台,都在使用开发API接口供开发者使用.即带来了,第三方应用要到开放平台授权的问题.OAuth就是做这个的. 1 OAuth2官网:http://oauth.net/2/ 2 OAuth2协议:http://tools.ietf.org/html/

Gradle 1.12用户指南翻译——第四十七章. Build Init 插件

文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc 本文翻译所在分支: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/usergu

Gradle 1.12用户指南翻译——第三十七章. OSGi 插件

本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个