c++ - 如何使用 stringstreams 求字符串中整数的总和?

标签 c++ addition stringstream

我有一个包含 6 个整数的字符串 '''string myStr = "1 2 3 4 5 6"'''

我想使用字符串流来单独读取所有这些数字并将它们全部相加以求和。

这是作业问题的一部分,只是为了澄清,我需要使用字符串流作为读取字符串并将其中所有数字相加的方法。

提示如下:

“创建一个包含六个数字的字符串。借助字符串流,将字符串中的所有数字相加”

注意: 抱歉,如果这是一个结构错误的问题。对我如何使这一点更清楚的任何批评表示赞赏。

我已经在寻找一种方法来做到这一点,但我无法准确理解它是如何工作的。

我知道您需要使用 '''ostringstream''' 或 '''istringstream''' 来完成我想做的任何事情。但我不知道如何使用它们。

我有一本教科书“Murach's C++ Programming”,这是我们在类里面可以引用的书。但除了从文本文件中读取之外,它没有涉及任何其他上下文中的字符串流。

void stringstreams(string myStr = "1 2 3 4 5 6"){

    stringstream strStream;
    strStream << myStr;

    myStr = strStream.str();
    cout << myStr << endl;

}

描述结果:

我认为所有这一切都是将字符串发送到字符串流中,然后以另一种方式将其发送回去(我可能完全错了)。我不确定该怎么做,因为我没有任何使用 stringstream 的经验。

最佳答案

这是使用 std::stringstream 的另一种方法,无需手动将字符串转换为整数:

#include <sstream>
#include <string>
#include <iostream>

int main() 
{
    std::string myStr = "1 2 3 4 5 6";
    std::stringstream strm(myStr);
    int value;
    int sum = 0;
    while (strm >> value)
        sum += value;
    std::cout << sum << "\n";
}

关于c++ - 如何使用 stringstreams 求字符串中整数的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57237475/

相关文章:

c++ - 对这段代码中 struct 的工作原理感到困惑

c++ - 不会命中 Visual Studio 2015 c++ 断点

c++ - operator<< 和 std::stringstream 引用?

c++ - 让 Stringstream 从字符串中的字符 A 读取到 B

c++ - 在 C++ 中对 200 万个数字进行排序

c++ - 组合 ECDSA key

algorithm - 非还原除法算法

arrays - 基于对在 MATLAB 矩阵中添加值

c++ - 如何将部分流作为参数传递?

c++ - 检测 grpc 服务器中关闭的客户端连接