前提・実現したいこと
独習C++という参考書でC++の学習をしています。fstreamヘッダファイルのget()関数を使用した際にエラーが出たわけではないのですが, 出力結果がおかしくなってしまいました.
該当のソースコード
C++
1 2#include<iostream> 3#include <fstream> 4using namespace std; 5int main(int argc, char *argv[]) 6{ 7 char ch; 8 if (argc != 2) { 9 cout << "引数の数が間違っています." << endl; 10 return 1; 11 } 12 ofstream out(argv[1], ios::out | ios::binary|ios::skipws); 13 if (!out) { 14 cout << "出力ファイルが開けません." << endl; 15 return 1; 16 } 17 cout << "$で入力を終了します." << endl; 18 do { 19 cout << ": "; 20 cin.get(ch); 21 out.put(ch); 22 } while (ch != '$'); 23 out.close(); 24 return 0; 25}
###コンソール画面上での出力結果
$で入力を終了します. : b : : a : : d : : $ 続行するには何かキーを押してください . . .
###問題点
上記の出力結果なのですが, 自分が想定していたのは以下のようなものでした. 「:」が1つ多く出力されているのが何故なのか考えても分かりません. get()関数に入力を1回スキップする機能などが付いているのでしょうか...?
$で入力を終了します. : b : a : d : $ 続行するには何かキーを押してください . . .
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/22 12:22
2018/03/22 12:27
2018/03/22 12:32
2018/03/22 12:36
2018/03/22 12:40 編集
2018/03/22 12:51 編集
2018/03/22 12:56 編集
2018/03/22 12:58
2018/03/22 13:05 編集
2018/03/22 13:07
2018/03/22 13:09