第八章 8.3.1节练习
来源:互联网 发布:淘宝怎么截图给卖家 编辑:程序博客网 时间:2024/05/29 03:09
题目:
练习8.9:
使用你为8.1.2节第一个练习所写的函数打印一个istringstream对象的内容。
个人解答:
参考书上给出的范例,这个程序应该很容易写出来
istream& func(istream& in) {vector<string> in_buf;string tmp, word;while (getline(in, tmp)){istringstream words(tmp);while (words >> word)in_buf.push_back(word);}for (auto i : in_buf){cout << i << " ";}cout << endl;in.clear();return in;}
练习8.10:
编写程序,将来自一个文件中的行保存在一个vector<string>中。然后使用一个istringstream从vector读取数据元素,每次读取一个单词。
个人回答:
参考8.9的程序。不过,这个题目要求的是读取一个单词。8.9的程序的鲁棒性还不够,对于标点符号还没有进行处理。
练习8.11:
本节的程序在外层while循环中定义了istringstream对象。如果record对象第一在循环外,你需要对程序进行怎样的修改?重写程序,将record的定义一到while循环之外,验证你的设想的修改方法是否正确。
个人解答:
istream& func(istream& in) {vector<string> in_buf;string tmp, word;istringstream words;while (getline(in, tmp)){words.str(tmp);while (words >> word)in_buf.push_back(word);words.clear();}for (auto i : in_buf){cout << i << " ";}cout << endl;in.clear();return in;}
使用了上面的代码进行修改。这里将istringstream定义在了while循环的外部。使用str()成员函数读取字符串,在压入完成后将该流的状态复位,这样就可以持续进行输出了。不加clear()函数,程序会在打印文件第一行后停止。
练习8.12:
我们为什么没有在PersonInfo中使用类内初始化?
个人解答:
因为,在PersonInfo中没有const和引用类型的成员变量。这是从c++类角度来说的。
从对象的角度,因为无法对一个具体成员进行预测,这里对一个人的个人信息进行初始化是没有任何意义的。
0 0
- 第八章 8.3.1节练习
- 第八章 8.3.2节练习
- 第八章 8.2.1节练习
- 第八章 8.1.2节练习
- 第八章 8.2.2节练习
- C primer plus 第八章 练习1:
- HTML第八章上机练习1
- 第八章上机练习1 老师答案
- 第八章 编程练习
- 第八章练习
- simply scheme 第八章 练习
- 第八周练习1小明借书
- 第八周 OJ练习-1
- 第八章线性时间排序之“基数排序RADIX-SORT”(练习8.3-1)
- 第八章上机练习1 自己做的
- C Primer Plus 第八章 编程练习 1-8题
- python核心编程--第八章 8.15 练习
- Python核心编程 练习 第八章
- UVA 1519 - Dictionary Size(Trie树)
- 一些平台无关的整型类型,int8_t,uint8_t....
- 黑马程序员:IO流之字节流
- 008实现一个算法从一个单链表中返回倒数第n个元素(keep it up)
- host 配置不生效的解决办法
- 第八章 8.3.1节练习
- 黑马程序员:IO流之间的转换、
- 【九度OJ】1021【模拟】
- 黑马程序员:File对象的基本功能
- 华为副总裁徐家骏离职:年薪千万工作感悟十二条
- 汽车防滑链
- POJ 2398 计算几何+二分+排序
- java io新类及常用输入输出方法
- struts2基础学习二