#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