C++的输入输出流简单总结【字符串】

1、istringstream、ostringstream、stringstream 类介绍

(1)基于控制台的输入输出

iostream对流进行读写,由istream和ostream派生。

(2)基于文件的输入输出

头文件为fstream,ifstream从文件中读取,由istream派生。ofstream写到文件中去,由ostream派生,fstream对文件进行读写,由iostream派生。

(3)基于字符串的输入输出

istringstream从string对象中读取,由istream派生,ostringstream写入string对象中,由ostream派生。stringstream对string对象进行读写,由iostream派生。

2、istringstream类

字符串对象的初始化

istringstream a("2371");

常用的成员函数

str():使istringstream对象返回一个string字符串 

比如这样:

istringstream a("2371");
cout<<a.str()<<endl;

应用1:把字符串类型的数据转换为其他类型

#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <ctime>
#include <set>
#include <sstream>
using namespace std;

int main()
{
    istringstream a("1 2.33");
    //cout<<a.str()<<endl;
    string b;
    b = a.str();
    int x;
    double y;
    /*a >> x;
    a >> y;
    cout<<x<<endl;
    cout<<y<<endl;*/

    a >> y;
    a >> x;

    cout<<x<<endl;
    cout<<y<<endl;

    return 0;
}

应用2:把长字符串读入流中,再从流中把以空格分隔的单词读入字符串。

#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <ctime>
#include <set>
#include <sstream>
using namespace std;

#define read() freopen("data.in", "r", stdin)

int main()
{
    //read();
    istringstream a;
    string b,str;
    while(getline(cin,b))
    {
        a.str(b);//把b中de字符串存入字符流中
        while(a >> str)//每次读取一个以空格分隔的单词存入str中
        {
            cout<<str<<endl;
        }
    }
    return 0;
}

3、istringstream类

用来往流中写入数据

#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <ctime>
#include <set>
#include <sstream>
using namespace std;

#define read() freopen("data.in", "r", stdin)

int main()
{
    //read();
    ostringstream a("hello");
    cout<<a.str()<<endl;

    a.put(‘2‘);
    cout<<a.str()<<endl;

    a.put(‘233‘);
    cout<<a.str()<<endl;

    return 0;
}

应用: 字符串与其他数据类型的转换

#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <ctime>
#include <set>
#include <sstream>
using namespace std;

#define read() freopen("data.in", "r", stdin)

int main()
{
    //read();
    //浮点型变成字符串
    double a = 233.233;
    string str1;
    string str2;

    stringstream b;

    b << a;
    b >> str1;

    cout<<str1<<endl;

    b.clear();
    //多次使用stringstream,要先清空下,不能使用stream.str("");否则下面输出10

    //char变string
    char str[10] = "hello";

    b << str;
    b >> str2;

    cout<<str2<<endl;

    b.clear();

    //string变int
    string str3 = "123";
    int c;

    b << str3;
    b >> c;

    cout<<c<<endl;
    //可以用sizeof(c)看一下,c已经变成了4个字节的整形啦。
    return 0;
}
时间: 2024-12-28 02:45:25

C++的输入输出流简单总结【字符串】的相关文章

Java输入输出流简单案例

package com.jckb; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import jav

9、面向对象以及winform的简单运用(输入输出流、图像的上传和读取)

一.输入输出流 1.概念: 输入输出流主要用于保存.读取文件,其内容保存在内存中. 2.使用方法: using System.IO; //System.IO 命名空间包含允许读写文件和数据流的类型以及提供基本文件和目录支持的类型. 3.代码段实现读取和保存功能: 读取文字: OpenFileDialog op = new OpenFileDialog(); op.ShowDialog();//打开文件对话框 //将选择的东西读取到文档里 StreamReader sd = new StreamR

输入输出流

1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO. 流IO的好处是简单易用,缺点是效率较低.块IO效率很高,但编程比较

【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作

一.基本目标 使用Java完成如下的操作: 把一个文件夹内的所有文件拷贝的另一的文件夹,例如,在F盘中有a与b两个文件夹: f:/a里面有一堆文件,运行Java程序之后就会全部复制到f:/b,并且完成重命名,在所有文件之前加rename_的前缀,如果里面有文件夹,则文件夹不重命名,里面的文件进行重命名,同样在所有文件之前加rename_的前缀: 二.制作过程 1.首先主函数非常简单,就是调用了上面FileTest类中的copyFolder函数 public class FileCopy { pu

Java输入输出流

1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO. 流IO的好处是简单易用,缺点是效率较低.块IO效率很高,但编程比较

java输入输出流总结 转载

一.基本概念 1.1 什么是IO?     IO(Input/Output)是计算机输入/输出的接口.Java中I/O操作主要是指使用Java进行输入,输出操作.     Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.      任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法.Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO.    

【转载】Java输入输出流-IO

转自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法. Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核

输入输出流(I/O)

一.流概述 流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流两种.I/O流提供了―条通道程序,可以使用这条通道把源中的字节序列送到目的地,虽然I/O流经常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘鼠标.内存或显示器窗口等. Java由数据流处理输入输出模式,程序从指向源的输入流中读取源中的数据.源可以是文件.网络.压缩包或者其他数据源. 输出流的指向是数据要到达的目的地,程序通过向输出流中写入数据把信息传递到目的地.输出流的目标可以是文件.网络.压缩包.控制台和其他数据输出

【转】输入/输出流 - 全面掌握IO

File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身,则需要使用输入/输出流,该类是位于java.io包下的 输入与输出IO: 输入流:只能从中读取数据,而不能向其中写入数据(由InputStream(字节流)和Reader(字符流)作为基类) 输出流:只能向其写入数据,而不能从中读取数据(由OutputStream(字节流)和Writer(字符流)