質問編集履歴
1
cinとgetlineの併用について参考情報追記
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回余分に行うことで期待する出力は得られました。
|