zoukankan      html  css  js  c++  java
  • stringstream使用

    stringstream的头文件是《sstream》,stringstream可以作为中间介质,实现字符串和数字之间的转换。

    数字转string
    double a=213;
    string s;
    stringstream ss;
    //注意stringstream ss(a)是错误的,因为a是数字
    ss<<a;
    ss>>s;
    cout<<s;//等价于cout<<ss.str();
    
    string转数字
    string s="123";
    int b;
    stringstream ss(s);//这是可以的
    ss>>b;//不能写成s>>ss;必须既要有 ss<<a,也要有ss>>b,或者用括号初始化
    cout<<b;//等价于cout<<ss.str();
    

    输入n行,每行读入不超过k个数字

    因为string类不能直接和数字进行转换,借助stringstream

    int a[N],cnt=0;
    string s;
    for(int i=0;i<n;i++)
    {
        getline(cin,s);
        stringstream ss;
        ss<<s;
        while(ss>>a[cnt++])
    }
    
        注意事项
        cin>>m>>n;
        
        string line;
        getline(cin,line);//将cin遗留的换行符从缓冲区钟读取出来
    

    基础不牢,地动山摇

    #include <bits/stdc++.h>
    typedef long long LL;
    using namespace std;
    /*
    4278:7:20
    4278:10:5
    
    75
    */
    int main()
    {
        string s1,s2;cin>>s1>>s2;
        stringstream ss(s1+':'+s2);
        string t;
        int a[10],cnt=1;
        while(getline(ss,t,':'))
        {
            stringstream temp(t);
            temp>>a[cnt++];
        }
        int a1=a[1],b1=a[2],c1=a[3];
        int a2=a[4],b2=a[5],c2=a[6];
        if(b1<=0||b1>10||b2<=0||b2>10||c1<=0||c1>30||c2<=0||c2>30)
            cout<<"NO CAKE!";
        else if(a1!=a2)
            cout<<"NO CAKE!";
        else if((b2-b1)*30+c2-c1<0)
            cout<<"NO CAKE!";
        else
            cout<<(b2-b1)*30+c2-c1;
        return 0;
    }
    
  • 相关阅读:
    代码模板
    DNSget Ip
    WC约束示使用
    下雨了
    Xml文件保存值不能及时更新
    代码不是艺术,而是达到目的的一种手段
    网站TCP链接暴增
    吐个槽吧
    正则表达式使用小注意
    Sereja and Two Sequences CodeForces
  • 原文地址:https://www.cnblogs.com/forward-985/p/13719692.html
Copyright © 2011-2022 走看看