do{
printf("Please enter your password again.\n");
for(x=0;x<5;x++)
{
pw1[x]=getch();
}}while(strcmp(pw,pw1));
}
printf("Your password is %s.\n",pw);
return 0;
}
問題主要在於我的輸入函數得用getch()才行,如果使用getchar(),則很奇怪的,pw() or pw1()中有一個的字串會少或多一個字符,而造成pw pw1二者肯定不同。為何會這樣呢?作者: enter 時間: 2015-2-25 02:07 本帖最後由 enter 於 2015-2-25 02:42 編輯
#include <stdio.h>
#include <conio.h>
int main(void){
char s[10],t[10];
printf("enter password,no more than 5 characters:\n");
gets(s);
printf("Please enter your password again:\n");
gets(pw1);
while(strcmp(pw,pw1) )
{
printf("Sorry, your password not match!\n Re-enter again:\n");
gets(pw1);
}
printf("Your password is %s.\n",pw);
return 0;
}作者: enter 時間: 2015-2-25 18:02
#include <stdio.h>
int main(void)
{
char pw[20],pw1[20];
int x;
printf("Please choose your password for 4 to 8 characters, press ENTER to finish:\n");
x=0; \\初始化成0
do{
pw[x]=getch();
printf("*");
x++;
}
while(pw[x-1]!='\r'); \\因為x已經++到下一個去了。
pw[x-1]='\0'; \\字串要收尾,否則後面陣列中可能還有其他先前已輸入的值。