0

パスワードのように、4 文字を入力し、各文字の代わりに「*」を出力するコードを作成しました。作業コードは次のとおりです。

#include <stdio.h>
#include <conio.h>
int main()
{
    int c = 0;
    char d[4];
    printf("Enter a character:");
    while (1)
    {
        if (_kbhit())
        {
            d[c] = _getch();
            printf("*");
            c++;
        }
        if (c == 4)
            break;
    }
    system("cls");
    for (c = 0; c <= 3; c++)
        printf("%c", d[c]);
}

ここで 2 つの質問があります: 1) ループを次のように変更すると、なぜ 4 つの ╠ が表示されるのですか?

for (c = 0; c <= 4;c++)
    {
        if (_kbhit())
        {
            d[c] = _getch();
            printf("*");
        }
    }

2) 2 番目のループの上限を c<=4 に変更すると、最後に余分な ╠ が付くのはなぜですか?

2 番目のループは次のとおりです。

for (c = 0; c <= 3; c++)
        printf("%c", d[c]);
4

1 に答える 1