このコードを実行すると、キーを2回cout
押した後にのみステートメントが実行されるのはなぜですか?enter
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
char buf[128];
cin.getline(buf, 128, '\n');
cout << buf;
return 0;
}
どうすれば修正できますか?
OSXLionでXcodeバージョン4.5.2を使用しています。returnターミナルでプログラムを実行してみましたが、2回押す必要があります。
これはこの質問に似ていますが、コードが少ないため、解決策がより明確になるはずです。つまり、他の質問では、問題は問題だと言われていましたがcin.ignore()
、私のコードにはそれがありません。
私が試した他の失敗したコード:
これにより、まったく同じ動作が生成されます。
cin.getline(buf, 128);
returnこれは次の行に移動することはありません(キーが何回押されても):
cin.getline(buf, 128, '\r');