当前位置:首页 » 《关于电脑》 » 正文

【C++ Primer Plus习题】17.7

15 人参与  2024年10月03日 10:40  分类 : 《关于电脑》  评论

点击全文阅读


问题:

这里是引用
在这里插入图片描述

解答:

#include <iostream>#include <vector>#include <string>#include <fstream>#include <algorithm>using namespace std;const int LIMIT = 50;void ShowStr(const string& str);void GetStrs(ifstream& fin, vector<string>& v);class Store{private:string str;ofstream* fout;public:Store(ofstream&out):fout(&out){}bool operator()(const string& str);~Store(){}};void ShowStr(const string& str){cout << str << endl;}void GetStrs(ifstream& fin, vector<string>& v){unsigned int len;char* p;while (fin.read((char*)&len, sizeof len)){p = new char[len];fin.read(p,len);v.push_back(p);}}bool Store::operator()(const string& str){unsigned int len = str.length();if (fout->is_open()){fout->write((char*)&len, sizeof len);fout->write(str.data(), len);return true;}else{return false;}}int main(){vector<string> vostr;string temp;cout << "Enter strings (empty line to quit):\n";while (getline(cin, temp) && temp[0] != '\0')vostr.push_back(temp);cout << "Here is your input.\n";for_each(vostr.begin(), vostr.end(),ShowStr);ofstream fout("strings.txt", ios_base::in | ios_base::binary);for_each(vostr.begin(), vostr.end(), Store(fout));fout.close();vector<string>vistr;ifstream fin("strings.txt", ios_base::in | ios_base::binary);if (!fin.is_open()){cerr << "Could not open the file for input.\n";exit(EXIT_FAILURE);}GetStrs(fin, vistr);cout << "\nHere are the strings read from the file:\n";for_each(vistr.begin(), vistr.end(), ShowStr);return 0;}

拜了个拜!


点击全文阅读


本文链接:http://zhangshiyu.com/post/167324.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1