c++ primer 学习笔记9--文件输入输出
来源:互联网 发布:淘宝消保30元怎么交 编辑:程序博客网 时间:2024/06/05 19:12
书285页,练习8.4
#include <iostream> #include <fstream>#include <vector>#include <string>using namespace std;int main(){ifstream in("data.txt");if (!in){cerr << "无法打开输入文件" << endl;return -1;}string line;vector<string> words;while (getline(in, line)){words.push_back(line);}in.close();vector<string>::const_iterator it = words.begin();while (it != words.end()){cout << *it << " ";++it;}}
8.6+8.7将输入文件名作为第一个参数,传给main函数,将输出文件名作为第二个参数传给main函数。
#include <iostream> #include <fstream>#include "Sales_data.h"using namespace std;int main(int argc,char *argv[]){if(argc != 3){cerr << "请给出输入,输出文件名" << endl;return -1;}ifstream in(argv[1]);if (!in){cerr << "无法打开输入文件" << endl;return -1;}ofstream out(argv[2]);if (!out){cerr << "无法打开输出文件" << endl;return -1;}Sales_data total;if (read(in, total)){Sales_data trans;while (read(out, trans)){if (total.isbn() == trans.isbn())total.combine(trans);else{print(out, total) << endl;total = trans;}}print(out, total) << endl;}elsecerr << "No data" << endl;}练习8.10,将来自一个文件中的行保存在一个vector<string>中,然后使用一个istringstream从vector读取数据元素,每次读取一个单词
#include <iostream> #include <fstream>#include <sstream>#include <vector>#include <string>using namespace std;int main(int argc,char *argv[]){ifstream in("data.txt");if (!in){cerr << "无法打开输入文件" << endl;return -1;}string line;vector<string> words;while (getline(in, line)){words.push_back(line);}in.close();vector<string>::const_iterator it = words.begin();while (it != words.end()){istringstream line_str(*it);string word;while (line_str >> word){cout << word << " ";++it;}}}
8.11
#include <iostream> #include <fstream>#include <sstream>#include <vector>#include <string>using namespace std;struct PersonInfo{string name;vector<string> phones;};int main(int argc,char *argv[]){string line, word;vector<PersonInfo> people;istringstream record;while (getline(cin, line)){PersonInfo info;//创建一个保存此数据的对象record.clear();//重复使用字符串流的时候,每次调用clearrecord.str(line);//将记录绑定到刚刚读入的行record >> info.name;//读取名字while (record >> word)//保持{info.phones.push_back(word);}people.push_back(info);}}8.13
#include <iostream> #include <fstream>#include <sstream>#include <vector>#include <string>using namespace std;struct PersonInfo{string name;vector<string> phones;};string format(const string &s){ return s; }bool valid(const string &s){////return true;}int main(int argc,char *argv[]){string line, word;vector<PersonInfo> people;istringstream record;if (argc != 2){cerr << "请给出文件名" << endl;return -1;}ifstream in(argv[1]);if (!in){cerr << "无法打开输入文件" << endl;return -1;}while (getline(cin, line)){PersonInfo info;//创建一个保存此数据的对象record.clear();//重复使用字符串流的时候,每次调用clearrecord.str(line);//将记录绑定到刚刚读入的行record >> info.name;//读取名字while (record >> word)//保持{info.phones.push_back(word);}people.push_back(info);}ostringstream os;for (const auto &entry : people){ostringstream formatted, badNums;for (const auto &nums : entry.phones){if (!valid(nums)){badNums << " " << nums;}else{formatted << " " << format(nums);}if (badNums.str().empty()){os << entry.name << " " << formatted.str() << endl;}else{cerr << "input error:" << entry.name << "invalid number(s)" << badNums.str() << endl;}cout << os.str() << endl;}}}
0 0
- c++ primer 学习笔记9--文件输入输出
- C学习笔记 文件输入输出
- 【足迹C++primer】22、文件输入输出
- C++PRIMER学习笔记
- c++primer学习笔记
- c++primer学习笔记
- C++primer学习笔记
- c++primer 学习笔记
- C++Primer 学习笔记
- c++primer学习笔记
- C++Primer学习笔记
- C++PRIMER 学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- c++primer学习笔记
- C++ Primer 学习 《输入输出》
- 笔记(1)一些简单的输入输出--C Primer Plus
- 列举玩家离开游戏的16个原因
- 用二叉树区分DFS和BFS
- 第六周 阅读程序 2 追踪程序运行
- P35 10
- [部署篇2]VMWare搭建Openstack——控制节点的KeyStone的安装
- c++ primer 学习笔记9--文件输入输出
- P35 11
- 输入年月日时分秒,计算下一秒的年月日时分秒
- 素数环 NOJ 1104
- 喜羊羊系列之数据结构栈链
- 若干算法实例总结
- 解决IE不能加载OCX控件问题(一)
- P35 12
- IOS开发—图片压缩/解压成Zip文件