stringstream实用用法总结

简介:

    定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstream 为主,介绍流的输入和输出操作。

        主要用来进行数据类型转换,由于 使用 string 对象来代替字符数组(snprintf 方式),避免了缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符号的问题。简单说,相比 C 编程语言库的数据类型转换, 更加安全、自动和直接.

常用的函数:

stringstream.str();转化为字符串;所以可以用来输出stringstream

stringstream.str("")让流清空.

自动实现数据类型的转换:
 

在 C++ 中,字符串流(stringstream)是一种特殊的流类,它允许将字符串作为输入和输出流进行处理。字符串流提供了一种方便的方式,可以将字符串与其他基本类型进行转换、拼接、解析等操作。

string s="aaa";
    stringstream line;
    line<< s;
    line << 1;//int
    line<<0.12; //float
    line<<'b'; //char
    cout<

 两种构造方式:

string s="aaa";
    //1.
    stringstream line;
    line<< s;
    
    //2.
    stringstream line(s);

区别在于:第二种方式在输入到stingstream的时候,之前的s会被覆盖;
所以一帮使用第一种构造方式.
比如:

        

string s="aaa";
    //1.
    stringstream line;
    line<< s;
    
    //2.
    stringstream line(s);

    line << 1;
    
    //第一种的结果是:aaa1;
    //第二种的结果是:1aa;

 分割字符串:
stringstream 默认是以空格来分割字符串的,利用 stringstream 去除字符串空格非常方便:

for(int i=1;i<=n;i++)
	{
		getline(cin,s);//读入一整行
		stringstream line;
        line  << s;//s输入到流中
		while(line>>a[cnt])cnt++;//从流中输出到数组中,这样就过滤掉了空格
	}

你可能感兴趣的:(总结的语法,计算机考研复试上机题,考研,算法,c++,数据结构)