c++ primer 第五版第八章答案

8.1  8.2

/*
* c++ primer exercise.
* test file.
*/ 

#include <iostream>
using namespace std;

istream & read_write(istream &in)
{
//   char cval;
    int ival;
    while(in>>ival)
        cout<<ival<<' ';
    in.clear();
    return in;

}

int main(int argc, char* argv[])
{

    read_write(cin);

    system("pause");
    return 0;
}

8.3 读取类型不匹配,EOF,发生系统级不可恢复的状态。

8.4
/*
* c++ primer exercise.
* test file.
*/ 

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{

    string sval;
    vector<string> svec;
    ifstream in(*(argv+1));
    if(in){
        while(getline(in,sval)){
            svec.push_back(sval);
            //cout<<sval<<endl;
        }
    }else{
        cerr<<"can not open: "+ string(*(argv+1));
        return -1;
    }

    for(unsigned int i=0;i<svec.size();++i){
        cout<<svec[i]<<endl;
    }

    system("pause");
    return 0;
}

8.5
/*
* c++ primer exercise.
* test file.
*/ 

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{

    string sval;
    vector<string> svec;
    ifstream in(*(argv+1));
    if(in){
        while(in>>sval){
            svec.push_back(sval);
            //cout<<sval<<endl;
        }
    }else{
        cerr<<"can not open: "+ string(*(argv+1));
        return -1;
    }

    for(unsigned int i=0;i<svec.size();++i){
        cout<<svec[i]<<endl;
    }

    system("pause");
    return 0;
}

时间: 2024-10-10 21:27:36

c++ primer 第五版第八章答案的相关文章

C++ Primer(第五版) 第八章:IO库

练习8.1:考察如何管理流的状态 1 istream& func(istream& is) 2 { 3 string buf; 4 while ( is>>buf ) cout<<buf<<endl; 5 is.clear(); 6 return is; 7 } 练习8.1 练习8.2:考察同上 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 i

《C++ Primer 第五版》练习9.51参考答案

//Date.h #include <map> #include <string> #include <vector> using namespace std; struct Date {         explicit Date(const string & info){//检测输入格式,尝试初始化,若失败则进行errorInit             if(mymap.empty()){               initMap();         

C++ Primer 第五版:第1 章

*****C++ Primer 第五版第1章学习笔记***** *****实验代码在Red Hat 6.6或VS 2013中调试***** *****文章内容依据当前知识撰写,存在认识的局限性***** 1.1 编写一个简单的C++程序 函数:依据我个人理解,C/C++的函数是一个能够完成一个功能的模块. 完整函数的组成: ①返回类型:不一定有返回值,故不一定有返回类型 ②函数名:根据名字标识完成特定功能的模块,必须存在 ③形参列表:可能没有参数传入,不一定存在 ④函数体:一个完整的函数应该是有

C++Primer第五版习题解答---第一章

C++Primer第五版习题解答---第一章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2022/1/7 第一章:开始 练习1.3 #include<iostream> int main() { std::cout << "hello, world" << std::endl; return 0; } 练习1.4: #include<iostream> int main() { int

C++ Primer 第五版学习笔记

<C++ Primer>第五版中文版学习笔记 ? C++ Primer 第五版学习笔记

C++ Primer 第五版:第2章

*****C++ Primer 第五版第2章学习笔记***** *****实验代码在Red Hat 6.6或VS 2013中调试***** *****文章内容依据当前知识撰写,存在认识的局限性***** 今天学习C++ Primer 的第2章,还没有看完,先写一点看书的心得和笔记. 对象类型决定对象包含的数据和能参与的运算操作,同时还决定了存储空间大小.算术表达式中不要使用char,因为不同机器实现不一样,导致结果不同.单精度计算不一定比双精度快. C++类型不匹配时,是自动进行类型的转换. C

C++ Primer(第五版)学习笔记_9_标准模板库_multimap多重映照容器

C++ Primer(第五版)学习笔记_9_标准模板库_multimap多重映照容器 多重映照容器multimap与map结构基本相同,但由于重复键值存在,所以multimap的元素插入.删除.查找都与map的方法不相同. 1.multimap对象创建.元素插入 插入元素时,需要使用insert()方法和类似pair<string,double>("Jack", 300.5)的元素结构.可以看到,重复的元素是按照插入的先后顺序排序的. #include <iostre

C++ Primer(第五版)学习笔记_5_标准模板库string(2)

C++ Primer(第五版)学习笔记_5_标准模板库string(2) 10.搜索string对象的元素或子串 采用find()方法可查找字符串中的第一个字符元素(char, 用单引号界定)或者子串(用双引号界定):如果查到,则返回下标值(从0开始计数),如果查不到,则返回一个很大的数string:npos(即:4294967295). #include <iostream> #include <stdio.h> #include <string> using nam

C++ Primer(第五版)学习笔记_3_标准模板库vector(2)

C++ Primer(第五版)学习笔记_3_标准模板库vector(2) 欢迎大家阅读参考,如有错误或疑问请留言纠正,谢谢 6.元素的插入 insert()方法可以在vector对象的任意位置前插入一个新的元素,同时,vector自动扩张一个元素空间,插入位置后的所有元素依次向后挪动一个位置. 要注意的是,insert()方法要求插入的位置,是元素的迭代器位置,而不是元素的下标. #include <iostream> #include <vector> using namespa