C++ 输入输出流之字符串流

原创 2013年12月02日 17:38:55
  • 字符串流介绍
    • 字符串流以内存中用户定义的字符数组(字符串)作为输入输出对象。
    • 字符串流也有缓冲区,当缓冲区满了(或遇到换行符),流缓冲的数据一起存入字符数组。
  • 头文件<strstream>
  • 1. 建立输出字符串流对象
    • ostrestream的构造函数:
      • ostrestream::ostrstream(char *buffer, int n, int mode = ios::out);
      • buffer指字符串数组首元素的指针
      • n是流缓冲区的大小
      • iost::out是默认值
    • 建立输出字符串流对象与字符数组的关联:
      • ostrstream strout(cStr1, 20)

  • 2. 建立输入字符串流对象
    • istrstream的构造函数:
      • istrstream::istrstream(char *buffer)
      • istrstream::istrstream(char *buffer, int n)
      • buffer是指向字符数组首元素的指针
      • n是缓冲区的大小
    • 建立输入字符串流对象与字符数组的关联
      • istrstream strin(cStr2);    // 将cStr2字符数组中的全部数组作为输入字符串流的内容
      • istrstream strin(cStr2);    // 将cStr2字符数组中的全部数组作为输入字符串流的内容

  • 3. 建立输入输出字符串流对象
    • strstream的构造函数
      • strstream::strstream(char *buffer, int n, int mode)
    • 建立输入输出流对象鱼字符串流流的关联
      • strstream strio(cStr3, sizeof(cStr3), ios::in|ios::out);
      • 以字符数组cStr3为输入输出对象,缓冲区大小与数组cStr3相同
  • 举例:
    #include <strstream>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        char cStr[50] = "12 34 65 -23 -32 33 61 99 321 32";
        int nArray[10];
        cout << "Old cStr: " << cStr << endl;
    
        // 以字符串cStr作为输入流,建立strin与cStr的关联,缓冲区大小为字符串cStr的大小
        istrstream strin(cStr, sizeof(cStr));
        int i, temp;
        for (i = 0; i < 10; i++)
            strin >> nArray[i];
    
        // 输出读入的数组
        cout << "nArray: ";
        for (i = 0; i < 10; i++)
            cout << nArray[i] << " ";
        cout << endl;
    
        for (int i = 0; i < 5; i++)  // 数组旋转
        {
            temp = nArray[i];
            nArray[i] = nArray[9 - i];;
            nArray[9-i] = temp;
        }
    
        ostrstream strout(cStr, sizeof(cStr));
        for (i = 0; i < 10; i++)
            strout << nArray[i] << " ";
        strout << endl;             // 加入'\0'
        
        cout << "New cStr: " << cStr << endl; // 输出最新的cStr
    
        return 0;
    }
扩展阅读:
  1. stringstream实现字符字符类型转换
  2.  C/C++字符串流(stringstream)

C++基础::字符串流(stringstream)

1. ss.clear() vs ss.str("") 2. str() 成员方法的返回值类型 3. 字符串流和文件流的交互 4. 字符串流的功能...

c/c++字符、字符串输入输出

1. scanf 1.1 输入字符 char ch; scanf("%c",&ch); 注意字符前面的取地址符 1.2 输入字符串 char str[15]; scanf("%s",s...

字符流stringstream详解

以下内容转自:http://www.usidcbbs.com/read-htm-tid-1898.html C++引入了ostringstream、istringstream、stringstrea...

c++ 字符串流 sstream(常用于格式转换)

原文:http://blog.163.com/zhuandi_h/blog/static/180270288201291710222975/ 使用stringstream对象简化类型转换 C++标准库...
  • eldn__
  • eldn__
  • 2015年04月04日 18:17
  • 2106

Caffe源码中caffe.proto文件分析

Caffe源码中caffe.proto文件分析

Caffe源码阅读(粗读)--网络初始化

最近打算看一看caffe实现的源码,我是从caffe训练这个线索阅读代码的。caffe.bin这个是我们在训练网络时用到的可执行文件,其中main()函数首先对输入参数进行解析,这里边用到了googl...

【C/C++学院】0826-文件重定向/键盘输入流/屏幕输出流/字符串输入输出/文件读写简单操作/字符文件读写二进制与文本差别/get与getline挖掘数据/二进制与文本差别/随机位置/多线程初级

文件重定向 [java] view plaincopy #include   using namespace std;  ...

C++标准输入输出流

  • 2012年12月16日 23:31
  • 41KB
  • 下载

c++课程实验输入输出流

  • 2014年09月17日 10:09
  • 1KB
  • 下载

IO:使用字符串作为物理节点的字符输入输出流的用法,即StringReader和StringWriter的用法

使用字符串作为物理节点的字符输入输出流的用法,即StringReader和StringWriter的用法 package net.nyist.io; import java.io.IOExce...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 输入输出流之字符串流
举报原因:
原因补充:

(最多只允许输入30个字)