パスワードのように、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]);