栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C++ Primer】 第八章 IO库 习题 答案

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C++ Primer】 第八章 IO库 习题 答案

本文参考书籍C++Primer 5th,这个专栏主要分享我的学习笔记与总结,以及课后题答案。

8.1

#include 
#include 
using namespace std;

istream& f(istream& is) {
    int i;
    while(!is.eof() )  { 
        is >> i;
        if(is.bad()) { // 读写出错
            throw runtime_error("error IO");
        }
        if(is.fail()) {//不是int
            cerr << "not int continue transform" << endl;
            is.clear();
            is.ignore(100,'n');   //把回车之前的n清除掉
            continue;
        }
        cout << i << endl;
    }
    is.clear();
    return is;
}

int main () {
    f(cin);
    return 0;
}

8.3


读取到无效数据的时候

8.4




需要一个txt文件

#include 
#include 
#include 
#include 
using namespace std;

void read_vs(vector &vs) {
    ifstream ifs;
    ifs.open("8.4.txt",ios::in);
    string line;
    if(ifs.fail()) {
        cout << "fail open the file" << endl;
        return;
    }
    while(!ifs.eof()) {
        getline(ifs, line);  // 按行存储  如果想按单词村  可以用 while(ifs >> line) 
        vs.push_back(line);
    }
}

int main () {
    vector vs;
    read_vs(vs);
    for(auto it : vs) {
        cout << it << endl;
    }
    return 0;
}
8.7


加上这个 知识点 用 char * 设置为文件名 方便保存!!

8.9

#include 
#include 
#include 

using namespace std;

istream & f(istream& in) {//输出对象
    string s;
    while (in >> s,!in.eof()) { 
        if(in.bad()) {
            throw runtime_error("not IO");
        }
        if(in.fail()) {
            cerr << "continue cin " << endl;
            in.clear();
            in.sync();
            continue;
        }
        cout << s << endl;
    }
    in.clear();
    return in;
}

int main () {
    ostringstream s;
    s << "CPT newBeef" << endl;
    istringstream in(s.str());
    f(in);
    return 0;
}


8.10

做过类似的 不做 了 答案如下

8.13
#include 
#include 
#include 
#include 
#include 
using namespace std;


struct PersonInfo {
    string name; 
    vector phones;
};
string format(const string &s) {
    return s;
}
bool valid(const string &s) {
    return true;
}
int main () {
    string line, word;
    //分别保存来自输入的一行和单词 
    vector people;
    //保存来自输入的所有记录 
    while(getline(cin,line)){ 
    PersonInfo info;
    // 张三 18170991111 李四 18611118668 王二 13022228888
    // 0108431123 13877776666
    // @阿⻄拜-南昌 07918888888
    istringstream record(line); 
    record >> info.name;
    while( record >> word)
    info.phones.push_back(word); //保存他们
    people.push_back(info); 
    }
    ostringstream os;
    for(const auto &entry:people){//对people中每一项 
        ostringstream formatted,badNums; //每个循环步创建的对象
        for(const auto &nums:entry.phones){
            if(!valid(nums)){ 
                badNums<<" "< 

 
感谢阅读
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号