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

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

时间: 2024-10-22 12:12:18

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

头文件algorithm中的常用函数

头文件algorithm中的常用函数 一.非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         find() 在序列中找出符合某谓词的第一个元素     find_if() 在序列中找出一子序列的最后一次出现的位置         find_end() 在序列中找出第一次出现指定值集中之值的位置     find_first_of() 在序列中找出相邻的一对

将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中

写这种.h和.cpp文件分开的大程序,虽然对很多人来说很简单,对自己来说算是第一次吧,好好学C++,加油~ 题目:定义Point类,由Point派生出Circle类,再由Circle派生出Cylinder类.将类的定义部分分别作为3个头文件,对他们的成员函数的定义分别作为3个源文件 1.Point.h文件 1 #ifndef POINT_H 2 #define POINT_H 3 #include<iostream> //头文件也需要包含这个 4 using namespace std; 5

一个化解C++互相包含头文件问题的方法——回调函数

最近写了两个通讯协议程序,都是电力系统中问答式传输规约,一个是基于TCP传输文件的102规约服务端程序,一个是基于串口采集数据的102规约客户端程序.之前还有别的通讯规约,最近更浓烈的期望能够抽象出这些通讯协议程序的一些通用的部分,以便于新的协议来时,我可以少一些工作量.大致上,我将这些通讯程序分成以下几类: 1.通讯协议类,主要负责按照一定传输协议去组装报文,拆解报文,范围包括全部角色的报文(主站.子站)2.通讯控制类,包括各种通讯控制的子类:TCP.串口等,主要负责建立通讯.关闭通讯.发送报

函数调用头文件MoveTo和LineToMFC制表函数)

函数调用头文件:#include"Gdi32.h" moveto函数名:movetointx,<函数名:movetointx.<函数名:movetointx.<函数名:movetointx.<函数名:movetointx.inty 从其时方位连到一个指定的点.这个函数调用完毕.功 能:用其时画笔画一条线.y回来其时方位)其时方位变成x. 用 法: intyvoidfarmovetointx.; intyCDC::MoveTointx. intyCpointMov

常用头文件和一些简单的函数

常用头文件和一些简单函数 #include <bits/stdc++.h> #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> #include <iostream> #include <algorithm> #include <string> #include <queue> #include <s

网易云课堂_C语言程序设计进阶_第六周:程序结构:内存模型(全局变量和局部变量)、头文件、宏定义、函数指针和回调函数,ACL图形库的消息机制

6.1 全局变量 6.2 编译预处理 6.3 大程序结构 6.1 全局变量 全局变量 定义在函数外面的变量是全局变量 全局变量具有全局的生存期和作用域 它们与任何函数都无关 在任何函数内部都可以使用它们 全局变量初始化 没有做初始化的全局变量会得到0值 指针会得到NULL值 只能用编译时刻已知的值来初始化全局变量 它们的初始化发生在main函数之前 被隐藏的全局变量 如果函数内部存在与全局变量同名的变量,则全局变量被隐藏 6.2 编译预处理 6.3 大程序结构

【C++常用函数】头文件&lt;algorithm&gt;中的常用函数(绝对值,交换,比较)

swap(a,b) 用于交换a,b两个变量的值: max(a,b) 返回a,b中的最大值: min(a,b) 返回a,b中的最小值: abs(x) 返回x的绝对值,x必须是整数: 原文地址:https://www.cnblogs.com/sdtuzxr/p/11980107.html

C/C++常用头文件及函数汇总

C/C++头文件一览 C #include <assert.h> //设定插入点#include <ctype.h> //字符处理#include <errno.h> //定义错误码#include <float.h> //浮点数处理#include <iso646.h>        //对应各种运算符的宏#include <limits.h> //定义各种数据类型最值的常量#include <locale.h> //定

标准IO: 文件的打开与关闭函数 fopen &amp; fclose

(1) 流(stream)和文件(file)    流和文件 在Turbo C2.0中是有区别的, Turbo C2.0 为编程者和被访问的设备之间提供了一层抽象的东西, 称之为"流", 而将具体的实际设备叫做文件.流是一个逻辑设备, 具有相同的行为.因此, 用来进行磁盘文件写的函数也同样可以用来进行打印机的写入.在Turbo C2.0中有两种性质的流:   文字流( text stream)和二进制(binary stream).对磁盘来说就是文本文件和二进制文件.本软件为了便于让读