none
_getch()が半角文字で2度実行する

    質問

  • C言語で以下のサンプルプログラムをコンソールアプリで実行して

    半角文字「a」と入力した所、

    _getch()が2度実行されるようになりました。
    (VS2015では1度のみですでした)

    これは関数の仕様が変更になったのでしょうか?
    ちなみに _getwch() だと正常(1度のみの実行)です。

    環境)
    ・Windows10(64bit)
    ・Visual Studio Community 2017 Version 15.7.5
    ・Visual C++ 2017   00369-60000-00001-AA755
    Microsoft Visual C++ 2017
    ・Windows SDKバージョン 10.0.17134.0

    サンプルプログラム)

    #include <stdio.h>
    #include <conio.h>

    int main() {

            char str[256];
            int index;
            int key;

            key = 0;
            index = 0;
            /* エンターが入力されるまで入力を受け付ける */
            while (0x0d != key) {
                    key = _getch();
                    putchar(key);
                    str[index++] = (char)key;
            }
            str[index] = '\0';

            /* 入力した文字を出力する */
            printf("\nstr=%s\n", str);
    }

    2018年7月23日 12:05

すべての返信