字符串流

字符串流包括istringstream ostringstream stringstream;

每一个流类都提供一个默认的缓冲区,当我们没有提供给缓冲区时,流类会自己构建一个缓冲区。

如同我们可以cout<<200,和cout<<"200"输出效果是一样的,同样,我们也可以将一个double输出给一个字符串流,也可以将一个字符串流输出给double。

#include <iostream>
#include <sstream>
using namespace std;
//将doueble类型转换为字符串;

string dtostr(double val)
{
    ostringstream oss;
    oss << val;
    return oss.str();
}

double strtodouble(string str)
{
    double val;
    istringstream iss(str);
    iss >> val;
    return val;
}

int main()
{
    ostringstream oss;
    double val = 55.55;
    cout << dtostr(val) << endl;
    string str = "123.123";
    cout << strtodouble(str) << endl;
    return 0;
}
时间: 2024-10-20 06:48:33

字符串流的相关文章

istringstream字符串流,实现类似字符串截取的功能,字符串流中的put,str()将流转换成为字符串string

 1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> using namespace std; struct MyStruct { string str1, str2, str3; double db; int num; char ch; }; void main() { string  mystring("china  google microsoft

第八篇:使用字符串流对象进行格式转换

前言 字符串流对象有个很实用的功能就是格式转换.比如可以将整数类型的123转换成字符串格式的123,或者反过来.那么具体又是如何实现的?且看下文. 实现思路 对于整数转换成字符串格式,可设s是一个空的字符串流对象,” 整型变量 “存放目标整数.则当执行" s << 整型变量 "后,该整数将转成字符串格式并存进流中.随后代码中使用" s.str() "即可获取到该整数的字符串格式.对于字符串转换成整数格式,亦可设s是一个空的字符串流对象,” 整型变量 “存

C++学习50 对字符串流的读写

文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据读入.字符串流也称为内存流. 字符串流也有相应的缓冲区,开始时流缓冲区是空的.如果向字符数组存入数据,随着向流插入数据,流缓冲区中的数据不断增加,待缓冲区满了(或遇换行符),一起存入字符数组.如果是从字符数组读数据,先将字符数组中的数据送到流缓冲区,然后从缓冲区中提取数据赋给有关变量. 在字符数组中

Java文件与io——字节数组流数据流字符串流

字节数组流 ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪read方法要提供的下一个字节.关闭ByteArrayInputStream无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException. ByteArrayOutputStream:此类中实现了一个输出流.其中的数据被写入一个byte数组.缓冲区会随着数据的不断写入而自动增长.可使用toByteArray()和toString()获取数据.关闭ByteArra

c++的字符串流

 整型数据 #include <iostream> #include <string> #include <sstream> using namespace std; int main( ) { string s; int x; int sum; while (getline(cin, s)) { stringstream ss(s); sum=0; while (ss>>x) sum=sum+x; cout<<sum<<endl;

字符串流sstream-part2

stringstream构造函数会特别消耗内存,似乎不打算主动释放内存(或许是为了提高效率),如果你要在程序中使用同一个流反复读写大量数据,将会造成大量的内部消耗,因此建议:    1:调用clear()清除当前错误控制状态,其原型为 void clear (iostate state=goodbit);     2:调用str("")将缓冲区清零,清除脏数据 //验证字符串流不会主动释放内存 #include <iostream> #include <sstream

【C++】int转换为string的两种方法(to_string、字符串流)

本文转自http://blog.csdn.net/chavo0/article/details/51038397 记录一下用到过的int转换成string的两种方法 第一种是to_string函数,这是C++11新增的,使用非常方便,简单查了下:C++11标准增加了全局函数std::to_string,以及std::stoi/stol/stoll等等函数(这几个就是string转int,long,以及long long啦~) to_string这个函数还是很强大的! string to_stri

字符串流sstream-part1

C++中的输入输出分为三种:基于控制台的I/O,即istream.ostream.iostream:基于文件的I/O,即ifstream.ofstream.fstream:基于字符串的I/O,即istringstream.ostringstream.stringstream.    C++引入了ostringstream.istringstream.stringstream这三个类,要使用它们创建对象就必须包含头文件sstream.其中ostringstream继承自ostream.istrin

字符串流stringstream(头文件sstream)

今天看到一样很有趣的东西,可以用于各种类型的转换.其实一个文本可以看作一个长长的字符串,整数啊浮点数的都是字符串,于是在字符串流里面就可以很方便地玩转各种类型,比如说: 1 #include<iostream> 2 #include<sstream> 3 using namespace std; 4 5 int main() 6 { 7 double a,b; 8 istringstream is("12.3445 2.3"); 9 is>>a>