[ホーム] - [Windows 10 FAQ 一覧] - [キーボードからの入力で空入力(enterキーのみ)を受け付ける]



作成日:2018/04/04
更新日:2022/03/10
対象:Windows 10

キーボードからの入力で空入力(enterキーのみ)を受け付ける




【目次】


目的


コンソールアプリケーションにおいて、キーボードからの文字入力を受けるプログラムを作るとします。
scanf_s でキーボード入力を受け付けるプログラムの場合、空の入力([enter]キーのみ)を受け付けないようです。何か実際に文字が入力されるまで何度も入力の要求が表示されます。
しかし実際には[enter]や[return]だけの空入力を受けたい場合があるでしょう。そんな場合のサンプルプログラムを紹介します。


手順


空の入力を受け付ける場合は _cgets_s を利用します。この場合は0バイトの入力として受け付けられるようです。

以下はサンプルコードです。


char buf[256];

// 入力なし([Enter]キーのみを受け付けない)
scanf_s("%s", buf,255);
printf("入力されたバイト数: %d バイト\n", lstrlen(buf));

size_t read;

// 入力なし([Enter]キーのみを受け付ける)
_cgets_s(buf, sizeof(buf), &read);
printf("入力されたバイト数: %d バイト\n", read);

return ;



まとめ


0バイトのキー入力の受付(空の受付)を行うには、scanf_s ではなく _cgets_s を使いましょう。

参考:
scanf_s のC言語サンプル
キー入力文字数を数えるC言語サンプル






(ご注意) 本サイト内の内容を使用して発生したいかなる時間的損害、金銭的損害あるいはいかなる損害に対して、いかなる人物も一切の責任を負いません。あくまでも個人の判断で使用してください。 本ページは独自に調査をしたアンオフィシャル(非公式)な内容です。内容に誤りがある可能性や仕様変更により内容が不正確になる可能性があります。 本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)


Copyright(c) TOOLJP.COM 1999-2022

[Windows 10 FAQ 一覧に戻る]