关于string流的一些输入!!!

tqtaigu 2010-08-03 12:20:36
用string流将文本文档中的数据输入时,应用istringstream sin(s)逐行的输入。但是sin>>a;只能暂时的记忆a的值。
(如果输入的这行数据为 1 2 3 4 5)接下来sum+=a;结果输出时就只能统一输出sum的值为15。然而,如果我还想将此过程打印出来(1+2+3+4+5=15),但是a循环后记录的值仅剩下5了。前面四个值要怎么得到呢???
我自己用的数组和向量来存储,但技术有限,还希望各位高手能够不吝赐教,谢谢!
...全文
181 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hastings 2010-08-03
  • 打赏
  • 举报
回复
1楼~~~~~~~叫我怎么说你好~~~~~~~~
xy_zhang 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jim_king_2000 的回复:]

C/C++ code

#include <algorithm>
#include <iterator>
#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <vector>
#include <numeric>
#include <functional>

using na……
[/Quote]

够简洁的,不用自己写循环。最后那个“+”用了\b回退了?
linsen_519 2010-08-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 tqtaigu 的回复:]
用string流将文本文档中的数据输入时,应用istringstream sin(s)逐行的输入。但是sin>>a;只能暂时的记忆a的值。
(如果输入的这行数据为 1 2 3 4 5)接下来sum+=a;结果输出时就只能统一输出sum的值为15。然而,如果我还想将此过程打印出来(1+2+3+4+5=15),但是a循环后记录的值仅剩下5了。前面四个值要怎么得到呢???
我自己用的数组和向量来……
[/Quote]

以上代码风格~我喜欢
看的出是纯C++流
Jim_King_2000 2010-08-03
  • 打赏
  • 举报
回复

#include <algorithm>
#include <iterator>
#include <iostream>
#include <fstream>
#include <string>
#include <iterator>
#include <vector>
#include <numeric>
#include <functional>

using namespace std;

class print_statement : public unary_function<int, void>
{
public:
result_type operator()(argument_type val)
{
cout << val << '+';
}
};

int main()
{
// Get input.
istream_iterator<int> iter_begin(cin);
istream_iterator<int> iter_end;
vector<int> data(iter_begin, iter_end);

// Print statement.
for_each(data.begin(), data.end(), print_statement());

// Print sum.
cout << "\b=" << accumulate(data.begin(), data.end(), 0) << "\n";

return 0;
}

输入的时候用Ctrl+z结束即可。

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧