C++ primer 8.3.2节练习(有关ostringstream清空的问题)
来源:互联网 发布:ios虚拟定位软件下载 编辑:程序博客网 时间:2024/06/13 21:39
8.13
输入:电话本
输出:检测后并格式化后的电话本,输出错误电话号码
#include <iostream> #include <fstream>#include <sstream>#include <string>using namespace std;bool Valid(const string& i){return(i.size() == 9);}string& Format(string& i){for (auto j = i.begin() + 2; j != i.begin() + 7; j++)*j = '*';return i;}int main(){ifstream input("F:\\test\\input1.txt");//打开文档,string中有'\'应用转义双写ofstream output("F:\\test\\output.txt",ofstream::app);//模式是追加(隐含out模式)//上句也可以写为output("...",ofstream::app|ofstream::out);string line,Name,phoneNum;istringstream record;ostringstream badNums, formatted;while (getline(input,line)) {record.clear();record.str(line);formatted.str("");//清空ostringstream的操作,注意不能用formatted.clear(),这样无效badNums.str("");//formatted.clear();//badNums.clear();//formatted.str().clear();//badNums.str().clear();record >> Name;//首先读入名字formatted << Name<<' ';//将名字写入formatted中while (record >> phoneNum){if (Valid(phoneNum))//如果电话号码有效就转换格式放入formatted{formatted << Format(phoneNum) << ' ';}else//否则就放入badNums中badNums << phoneNum << ' ';}output << formatted.str() <<'\n';//将转换好的写入到文件中去if (!badNums.str().empty())cerr << "无效的手机号码为:" << badNums.str() << endl;}system("pause");return 0;}
如下:
这里面有清空ostringstream的操作,正确情况ostringstream的操作应该是
formatted.str("");badNums.str("");
而不是和istringstream一样的 .clear()。也有可能会写成ostringstream.str().clear。这样更不对,ostringstream.str()只是返回他的内容的拷贝,而非他本身,更起不到清空他的作用了。
阅读全文
0 0
- C++ primer 8.3.2节练习(有关ostringstream清空的问题)
- 【c语言】清空缓存 的问题
- 【c语言】清空缓存 的问题
- 如何清空ostringstream对象中的内容
- stringstream的清空问题
- Jtable 清空的问题
- C++primer(第五版)8.3.2节练习答案
- C++Primer第五版 8.3.2节练习
- C++Primer中文版 1.5.2节练习
- C++primer第八章课后变成练习的小问题
- 有关清空表单的各种可能的操作
- 有关css清空样式比较全的总结
- c++primer p101 3.4.2 练习3.24 未完成 很多问题
- C++stringstream的clear()清空误区
- C++stringstream的clear()清空误区
- C语言 清空缓冲区的方法
- Jtable 排序,清空的问题
- Jtable 排序,清空的问题
- 设计模式学习:工厂模式
- sdnu-并查集&图论-weeklyexam ——C
- git
- Windows10内置Linux子系统初体验
- 标准化与归一化
- C++ primer 8.3.2节练习(有关ostringstream清空的问题)
- 无Python环境变量python正常使用
- IPv6终于要取代IPv4了!阿里云将全面提供IPv6服务
- Spring MVC的web.xml配置详解(转)
- 常见问题
- HashMap和HashSet的区别
- 关于python中inspect模块的一些探究
- Linux 安装activeMq
- python爬虫提取数据之Beautifulsoup4简单使用