C++中的istringstream 的用法
参考博客
在写leetcode上写一道关于字符串计算式题目Basic Calculator II时,在讨论区看到有人使用istringstream,就查了一下,
istringstream是一个比较有用的c++的输入输出控制类。
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含<sstream>这个头文件。
istringstream类用于执行C++风格的串流的输入操作。
ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。
istringstream的构造函数原形如下:
istringstream::istringstream(string str);
它的作用是从string对象str中读取字符。
但是我的这个题目中与与参考博客中的输出的类型不同:
# include <iostream>
# include <string>
# include <vector>
# include <cctype>
# include <sstream>
using namespace std;
int main(){
string str = "1+ 2* 4";
istringstream is(str);
char s;
while(is >> s){
cout<<s<<endl;
}
return 0;
}
输出:
1
+
2
*
4
输出的结果中自动跳过了空格符。
# include <iostream>
# include <string>
# include <vector>
# include <cctype>
# include <sstream>
using namespace std;
int main(){
string str = "1+24-56+34";
istringstream is(str);
int s;
while(is >> s){
cout<<s<<endl;
}
return 0;
}
输出:
1
24
-56
34
当把输出的到一个int型时,会自动转型到int数据。