質問するログイン新規登録

回答編集履歴

2

追記

2021/08/15 08:50

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -28,4 +28,30 @@
28
28
  std::cout << item << std::endl;
29
29
  }
30
30
  }
31
+ ```
32
+
33
+ [別解] 正規表現使うと楽(オーバースペックかしら...)
34
+ ```C++
35
+ #include <iostream>
36
+ #include <regex>
37
+ #include <string>
38
+ #include <vector>
39
+
40
+ int main() {
41
+ using namespace std;
42
+
43
+ vector<int> val;
44
+
45
+ string line;
46
+ getline(cin, line);
47
+ regex re("[^,\n]+"); // ,でも改行でもない文字のひとつ以上の連続
48
+
49
+ for ( sregex_iterator it(line.begin(), line.end(), re), end; it != end; ++it) {
50
+ val.push_back(stoi(it->str()));
51
+ }
52
+
53
+ for ( auto item : val ) {
54
+ cout << item << endl;
55
+ }
56
+ }
31
57
  ```

1

微修正

2021/08/15 08:50

投稿

episteme
episteme

スコア16612

answer CHANGED
@@ -10,7 +10,7 @@
10
10
  vector<int> val;
11
11
 
12
12
  string line;
13
- getline(std::cin, line); // 標準入力から一行読み込む
13
+ getline(cin, line); // 標準入力から一行読み込む
14
14
 
15
15
  const string delimiter = ",\n"; // 区切り文字
16
16
  string::size_type bpos = 0;