美文网首页
C++练习字符串流的输入输出

C++练习字符串流的输入输出

作者: 科学旅行者 | 来源:发表于2016-11-27 21:18 被阅读133次

参考资料:《C++ Primer习题集(第5版)》

#include <iostream>
#include <sstream>
#include <string>
#include <stdexcept>//处理异常;
using namespace std;

istream &f(istream &in) {//不能拷贝IO对象, 不能将形参或返回类型设置为流类型;//进行IO操作的函数通常以引用方式传递和返回值;
    string v;
    while (in >> v, !in.eof()) {//直到遇到文件结束符才停止读取;
        if (in.bad()) {//不可恢复的错误, IO流崩溃;
            throw runtime_error("IO流错误");//抛出异常;
        }
        if (in.fail()) {//可以恢复的错误;//比如输入类型不匹配;
            cerr << "数据错误, 请重试: " << endl;
            in.clear();//将in中所有条件状态位复位, 将流的状态设置为有效, 返回void;//恢复正常;
            in.ignore(100, '\n');//读取并忽略最多100个字符, 包括'\n';
            continue;
        }
        cout << v << endl;
    }
    in.clear();
    return in;//返回引用;
}//读写一个IO对象会改变其状态, 因此传递和返回的引用不能是const的;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    ostringstream msg;//字符串输出流;//向string写入数据;
    msg << "C++ Primer 第五版" << endl;
    istringstream in(msg.str());//strm.str() : 返回strm所保存的string拷贝;
    f(in);
    return 0;
}
//执行结果;
/*
C++
Primer
第五版
*/

相关文章

  • C_C++ 字符串数字的转换

    C++ 字符串流 stringstream C++ stream library 中的 stringstream ...

  • C++练习字符串流的输入输出

    参考资料:《C++ Primer习题集(第5版)》

  • Java IO流

    标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流等等,java中将输入输出抽象称为流,就好...

  • c++代码入门2

    c++ 中的 标准输入输出 2.c++ 中的标准输入输出(字符类型) 3.c++ 中的无限输入(cin,cout)...

  • C++笔记

    C++笔记 一、输入输出 scanf 输入字符串,%c,空格是不会被跳过的 用scanf输入,出现非控制字符,则...

  • 第四篇:戏说C++字符串流

    字符串流的作用是什么? stringstring/字符串流:就是一种没有提供I/O通道的"流",它并没有实际执行I...

  • c++输入输出,堆空间,inline

    c++输入输出 c++输入输出类包含在iostream头文件的namespace std命名空间中 count输出...

  • C++资源库(实例)

    C++ 实例 C++ 实例 - 输出 "Hello, World!" C++ 实例 - 标准输入输出 C++ 实例...

  • C++学习记录

    最简单的c++程序 标准输入输出流 可以使用 控制字符,需要包含iomanip 输入相关cin 可以使用空格,回车...

  • c++字符串

    字符串创建 字符串输入输出 可以在输入输出语句中用字符串变量名,输入输出字符串,如: 注意:多个用空格隔开的字符串...

网友评论

      本文标题:C++练习字符串流的输入输出

      本文链接:https://www.haomeiwen.com/subject/wxmnpttx.html