コードに次のような C++ 文字列があります。
"1 2 3 4 5 6 7 8"
文字列がスペース文字で区切られた整数で構成されていることは知っています。どうすればそれらを合計できますか?
私はかなりの C++ 初心者で、Java では単純に次のようにします。
String str = "1 2 3 4 5 6 7 8";
int sum = 0;
for (int i = 0; i < str.split(" ").length; i++ {
sum += Integer.parse(str.split(" ")[i];
}
C++ の文字列オブジェクトでこのようにするにはどうすればよいですか?
一部の人々は私に提案しましstringstream
たが、私はまだこのオブジェクトを理解できず、文字列全体を読み取って、その中のすべての数字を取得する必要があります。
前もって感謝します!
更新: 何人かの人がうまく私を助けようとしましたが、それでもうまくいきません。おそらく、私が以前に明確にしていない問題の癖が原因です。だからここに行く:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
freopen("variable-exercise.in", "r", stdin);
int sum = 0, start = 0;
string line;
while(getline(cin ,line)) {
istringstream iss(line);
while(iss >> start) {
sum += start;
}
cout << start << endl;
sum = start = 0;
}
return 0;
}
ああ、入力ファイルには次のものが含まれています。
1
3 4
8 1 1
7 2 9 3
1 1 1 1 1
0 1 2 5 6 10
したがって、プログラムは行ごとに、文字列行のすべての整数の合計を出力する必要があります。この例では、次が生成されます。
1
7
10
21
5
24
ありがとう