我是C新手,並且很喜歡學習它,但是我遇到了一個與我的程序有關的問題,我很難嘗試弄清楚。在下面的程序中,如果用戶輸入「1」,則將提示他們輸入「密鑰」,「年齡」,「名字」和「姓氏」。但是,當用戶輸入「1」時,程序不會等待用戶輸入「Key」值,而是直接打印到「Age」。C程序不會等待用戶輸入值
進入「1」後的輸出:
輸入以下信息:按鍵 :年齡:
程序要求之前不會等待用戶在一個鍵值進入,用戶輸入年齡值。程序編譯時不會發生錯誤或警告。
任何和所有的幫助,非常感謝。
typedef struct userInputsContainer {
char inputOption[2];
char inputKey[2];
char inputAge[3];
char inputFName[10];
char inputLName[10];
}userInputsContainer;
int main()
{
struct userInputsContainer* container = (struct userInputsContainer*)malloc(sizeof(userInputsContainer));
printf("List of options..\n");
printf("1.Create Entry\n2.Search Entries\n");
fgets(container->inputOption, sizeof(container->inputOption), stdin);
if(container->inputOption[0] == '1')
{
printf("\nEnter the following information.. \n");
printf("Key: ");
fgets(container->inputKey, sizeof(container->inputKey), stdin);
printf("Age: ");
fgets(container->inputAge, sizeof(container->inputAge), stdin);
printf("First Name: ");
fgets(container->inputFName, sizeof(container->inputFName), stdin);
printf("Last Name: ");
fgets(container->inputLName, sizeof(container->inputLName), stdin);
}
}
@ user3121023沒有要求存儲一個字符。那麼空行呢? – Olaf