码迷,mamicode.com
首页 > 其他好文 > 详细

sstream头文件-getline 函数 和 stringstream函数 和string的常见用法

时间:2017-07-17 13:19:48      阅读:536      评论:0      收藏:0      [点我收藏+]

标签:抽取   sum   指定   sdfs   turn   常见   using   地方   头文件   

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main()
{
    string line;
    while(getline(cin,line)
    {
        int sum = 0, x;
        stringstream ss(line);
        while(ss>>x)
        {
            sum += x;
        }
        cout << sum << endl;
    }
    return 0;
}

//getline函数可以读入一行的字符,不论有没有空格,第一个参数,流 ,第二个参数 ,将流读入的地方,第三个参数,当读到某个字符的时候停止; stringstream函数是C++提供的另一个字串型的串流(stream)物件,和之前学过的 iostream、fstream 有类似的操作方式

stringstream stringstream是字符串流,经常被我用来作数据切分或者类型转化; 主要是用在將一個字串分割,可以先用 clear( )以及 str( ) 將指定字串設定成一开始的內容,再用 >> 把个別的资料输出,例如:

string s;
stringstream ss;
int a, b, c;
getline(cin, s);
ss.clear();
ss.str(s);
ss >> a >> b >> c;

 



也可以在使用之前直接进行初始化
getline(cin , line);
stringstream ss(line);

补充:string的某些用法; string常用的方法是find和substr; string str = "aaaaddddssdfsasdf"; size_t pos = str.find("ssdf", 3); string str2 = str.substr(pos, 5); find函数从str的第3个位置查起,找到ssdf这个子串后,返回子串的位置。而substr函数从pos位置开始,截取5个字符,赋值给str2。也就是说,str2之后的内容将是ssdfs

类型转化: string到int的转换 stringstream stream; string result=”10000”; int n=0; stream << result; stream >> n;//n等于10000

类型转化:int 到 string 的转化

#include <string>
#include <sstream>
#include <iostream> 

int main()
{
    std::stringstream stream;
    std::string result;
    int i = 1000;
    stream << i; //将int输入流
    stream >> result; //从stream中抽取前面插入的int值
    std::cout << result << std::endl; // print the string "1000"
}

 

当进行多次类型转化的时候,需要用到clear函数;将stringstream中的清空;

sstream头文件-getline 函数 和 stringstream函数 和string的常见用法

标签:抽取   sum   指定   sdfs   turn   常见   using   地方   头文件   

原文地址:http://www.cnblogs.com/ilovelianghui/p/7193731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!