[解決済み] C言語のループでエンターキーを読み込む
2022-03-05 09:31:43
質問
ループの中でエンターキーを複数回読み込むには?
以下のように試しましたが、結果が出ません。
char c;
for (i=0; i<n; i++){
c = getchar ();
fflushstdin ();
if (c == '\n'){
//do something
}
}
そして、fflushstdin。
void fflushstdin (){
int c;
while ((c = fgetc (stdin)) != EOF && c != '\n');
}
エンターキーの代わりに他の文字を読めば完璧に動作しますが、エンターキーでは、いくつかの繰り返しで、エンターキーを2回押さなければなりません。
ありがとうございます。
EDIT: Windowsのputtyで実行し、プログラムは仮想ボックス上の仮想化されたlinux mintで実行されています。
解決方法は?
なぜfflushstdin()を呼び出すのですか?fgetc()が "nothing "を返した場合、その文字は完全に削除されます。
これでうまくいくはずです。
char prev = 0;
while(1)
{
char c = getchar();
if(c == '\n' && prev == c)
{
// double return pressed!
break;
}
prev = c;
}
関連
-
[解決済み】変数の警告が設定されているが使用されていない
-
[解決済み] (.text+0x20): `main'への未定義の参照と関数への未定義の参照
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み】C言語で浮動小数点例外(コアダンプ)発生
-
[解決済み] [Solved] なぜこのようなエラーが発生するのでしょうか。「データ定義に型またはストレージクラスがない」?
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み】C 未知の型名「my_structure」。
-
[解決済み】未定義参照 makefile が間違っているのかも?
-
[解決済み】エラー:呼び出されたオブジェクトは、関数または関数ポインタではない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み】変数の警告が設定されているが使用されていない
-
[解決済み】組み込み関数「malloc」の暗黙の宣言の非互換性
-
[解決済み】式は、単純なポインタ演算を使用して完全なオブジェクト型へのポインタでなければなりません【重複】。
-
[解決済み】 switch case: error: case label does not reduce to an integer constant
-
[解決済み】「構造体でもユニオンでもないものにメンバー'*******'を要求する」とはどういう意味ですか?
-
[解決済み】EAGAINとはどういう意味ですか?
-
[解決済み】コンパイラの警告 - 真理値として使用される代入の周囲に括弧を付けることを推奨する
-
[解決済み】MPI通信でMPI_Bcastを使用する場合
-
[解決済み】配列型char[]が代入できない [重複]。