質問編集履歴

1

cinとgetlineの併用について参考情報追記

2022/12/01 06:31

投稿

mjk
mjk

スコア303

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,21 @@
1
+ ### 参考情報追記
2
+ (BA後に見つけた情報です)
3
+ [cinとgetlineの併用](https://takahiro-itazuri.hatenadiary.jp/entry/2017/12/31/020759#cin%E3%81%A8getline%E3%81%AE%E4%BD%B5%E7%94%A8)
4
+ > cinを使用した後にgetlineを仕様すると、getlineで取得した文字列には何も入っていないということが発生します。
5
+ > 引用テキストその原因は、cinは改行文字の前で入力が終わっているため、現在位置から改行までを読み込むgetlineを使用すると、空の文字列になってしまうからです。
6
+ > 引用テキスト併用したい場合には、以下のようにします。
7
+ ```C++
8
+ int n;
9
+ std::string s;
10
+
11
+ std::cin >> n;
12
+ std::cin.ignore(); // 次の改行文字まで最大1文字読み捨てる
13
+
14
+ std::getline(std::cin, s);
15
+ ```
16
+ ---
17
+
18
+
1
19
  ### 質問
2
20
  標準入力で`cin`の後に`getline`を行うと**期待する出力が1行少なくなってしまいます**。
3
21
  正しい方法ではないと思うのですが`getline`を1回余分に行うことで期待する出力は得られました。