stringstream
有谁知道C++里面的stringstream和文件的输入输出有啥区别啊?怎么使用?百度上说啥内存层的输入输出。。我靠什么鬼啊!!!大佬来拉菜鸟一把{:10_254:} 什么区别?两者本来就不是一样的。stream里面就包含了iostream和strstream BngThea 发表于 2017-11-13 07:42什么区别?两者本来就不是一样的。stream里面就包含了iostream和strstream
stringstream这是C++里面的,iostream是C语言里面的 月满霜华 发表于 2017-11-14 01:37
stringstream这是C++里面的,iostream是C语言里面的
初学c++最常用的include指令是什么 BngThea 发表于 2017-11-14 06:57
初学c++最常用的include指令是什么
stdio.h啊,不过stringstream是在sstream头文件里面 月满霜华 发表于 2017-11-14 08:40
stdio.h啊,不过stringstream是在sstream头文件里面
c++控制输入输出的不是<iostream>?
你确定你学的是C++? BngThea 发表于 2017-11-14 08:51
c++控制输入输出的不是?
你确定你学的是C++?
大佬,您列个stream,stringstream,fstream的关系图出来吧,也学习下。 BngThea 发表于 2017-11-14 08:51
c++控制输入输出的不是?
你确定你学的是C++?
我确定,iostream是输入输出没毛病,但stringstream更单纯,更安全,专用于字符流转换,以及输入输出,它是封装在sstream.h头文件里面的,默认为stringstream(string str){}他可以像C语言里面的istringstream那样从一个字符串中读取字符(调用put方法),也可以像ostringstream那样向一个字符串里插入字符(>>) 本帖最后由 U201010009 于 2017-11-14 15:43 编辑
C语言标准中没有stringstream.h的头文件(据我所知),是C++的头文件stringstream
Header: <sstream>
Namespace: std
根据VS的msdn帮助文档里查到的fstream和sstream的信息如下:
----------------------------------------------fstream------------------------------------------------------------------------------
fstream ---> typedef basic_fstream<char, char_traits<char> > fstream
basic_fstream --->
template <class Elem, class Tr = char_traits<Elem> >
class basic_fstream : public basic_filebuf<Elem, Tr>
描述一个对象,它使用类basic_filebuf <Elem,Tr>的流缓冲区控制元素和编码对象的插入和提取,元素的类型为Elem,其特征由类Tr确定。
basic_filebuf --->
template <class Elem, class Tr = char_traits<Elem> >
class basic_filebuf : public basic_streambuf<Elem, Tr>
描述了一个流缓冲区,它控制Elem类型的元素的传输,这些元素的特征由类Tr确定,与外部文件中存储的元素序列相交。
----------------------------------------------sstream-------------------------------------------------------------------------------
sstream
定义了几个模板类,它们支持存储在已分配数组对象中的序列的iostream操作,stringstream是其中之一。
stringstream ---> typedef basic_stringstream<char> stringstream
basic_stringstream --->
template <
class Elem,
class Tr = char_traits<Elem>,
class Alloc = allocator<Elem>
>
class basic_stringstream : public basic_stringbuf<Elem, Tr>
描述一个对象,它使用basic_stringbuf<Elem,Tr,Alloc>类的流缓冲区控制元素和编码对象的插入和提取。
basic_stringbuf --->
template <class Elem, class Tr = char_traits<Elem>,
class Alloc = allocator<Elem>
>
class basic_stringbuf : public basic_streambuf<Elem, Tr>
描述了一个流缓冲区,它控制Elem类型元素的传输,它的字符特征由类Tr确定,与数组对象中存储的一系列元素进行传输。
fstream和sstream的区别可以参考basic_filebuf和basic_stringbuf的区别。
使用方法可以在msdn上找到用例。
fstream用例(https://msdn.microsoft.com/zh-cn/library/a33ahe62.aspx)
sstream用例(http://www.usidcbbs.com/read-htm-tid-1898.html)(在msdn上暂未找到用例,所以在网上找的用例)
推荐你看一下《C++Primer》,IO库那一节有很详细的讲解
页:
[1]