C++中的istringstream 的用法

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数据。

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值