0
我正在使用結構在C中編寫一個簡單的程序。用戶需要爲結構輸入一些值 - 名稱和年齡。第一次輸入數據後,第二次程序跳過其中一個字段,只希望我輸入數據的第二個字段。我無法弄清楚什麼是錯的。獲取用戶輸入無法正常工作
struct Person {
char name[20];
int age;
};
void main(){
struct Person pArray[10];
for (int i = 0; i < 10; i++) {
printf("Please enter a name and age:\n");
printf("Name: ");
fgets(pArray[i].name, 20, stdin);
printf("Age: ");
scanf("%d", &pArray[i].age);
}
}
正如你所看到的,第一次進入喬納森和45後,它第二次跳過了名字,只想要年齡。這是爲什麼發生?
'的scanf( 「%d」,&粒子陣列[I]。年齡);' - >'的scanf( 「%d%* C」,&粒子陣列[I ] .age);' –
您需要在'age'輸入後使用換行符。 – BLUEPIXY
感謝您的快速回復,因此像Sourav Ghosh建議的那樣添加'%* c'會消耗這條線? – Keselme