zoukankan      html  css  js  c++  java
  • sstream头文件-getline 函数 和 stringstream函数 和string的常见用法

    2017-08-12 19:50:50

    writer:pprp

     

    getline函数可以读入一行的字符,不论有没有空格

    第一个参数,流

    第二个参数 ,将流读入的地方

    第三个参数,当读到某个字符的时候停止;


    #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;
    }

     


    stringstream函数是C++提供的另一个字串型的串流(stream)物件,和之前学过的 iostream、fstream 有类似的操作方式

    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中的清空;

  • 相关阅读:
    Daily Scrum 10.31
    Daily Scrum 10.30
    Daily Scrum 10.29
    Daily Scrum 10.28
    扩展设置
    安装
    james+javamail入门
    解决ZF2_PATH environment
    Apache Httpd Server 2.2升级2.4
    缓存,spring
  • 原文地址:https://www.cnblogs.com/pprp/p/7193731.html
Copyright © 2011-2022 走看看