zoukankan      html  css  js  c++  java
  • stringstream istringstream ostringstream 三者的区别

    stringstream istringstream ostringstream 三者的区别

    说明

    ostringstream : 用于执行C风格字符串的输出操作。

    istringstream : 用于执行C风格字符串的输入操作。

    stringstream : 同时支持C风格字符串的输入输出操作。

    通常,ostringstream 类用来格式化字符串,避免申请大量的缓冲区,替代sprintf。该类能够根据内容自动分配内存,其对内存管理也是相当到位。

    原文链接

    代码示例

    #include <string>
    #include <sstream>//
    #include <iostream>
    using namespace std;
    //ostringstream 用于执行C风格字符串的输出操作
    void ostringstream_test()
    {
    	//ostringstream 只支持 << 操作符
    	std::ostringstream oss;
    	oss << "this is test" << 123456;
     	std::cout<<oss.str()<<std::endl;
    	oss.str("");//清空之前的内容
    	//oss.clear();//并不能清空内存
    	//浮点数转换限制
    	double tmp = 123.1234567890123;
    	oss.precision(12);
    	oss.setf(std::ios::fixed);//将浮点数的位数限定为小数点之后的位数
    	oss << tmp;
     
    	std::cout << oss.str() << "
    " << std::endl;
    }
     
    //istringstream 用于执行C风格字符串的输入操作
    void istringstream_test()
    {
    	//istringstream 只支持 >> 操作符
    	std::string str = "welcome to china";
    	std::istringstream iss(str);
     
    	//把字符串中以空格隔开的内容提取出来
    	std::string out;
    	while(iss >> out)
    	{
    		std::cout << out << std::endl;
    	}
    	std::cout << "
    " << std::endl;
    }
     
    //stringstream 同时支持C风格字符串的输入输出操作
    void stringstream_test()
    {
    	//输入
    	std::stringstream ss;
    	ss << "hello this is kandy " << 123;
    	std::cout << ss.str() << "
    " << std::endl;
     
    	//输出
    	std::string out;
    	while(ss >> out)
    	{
    		std::cout << out.c_str() << std::endl;
    	}
    	std::cout << "
    " << std::endl;
    }
     
    int main()
    {
    	ostringstream_test();	
    	istringstream_test();
    	stringstream_test();
    	system("pause");
    	return 0;
    }
    
    欢迎评论交流!
  • 相关阅读:
    leetcode:Valid Parentheses(有效括号匹配)
    leetcode:Remove Nth Node From End of List (移除从尾部数的第N个节点)
    leetcode:Letter Combinations of a Phone Number(手机号码的字母组合)
    leetcode:4Sums(四个数相加的和)
    leetcode:3Sum Closest
    leetcode:3Sum (三个数的和)
    leetcode:Longest Common Prefix(取最长字符串前缀)
    php数据访问
    PHP 基础知识测试题
    面相对象设计模式
  • 原文地址:https://www.cnblogs.com/alking1001/p/11766002.html
Copyright © 2011-2022 走看看