在下面的代码中,当用户在地址处输入空格时,程序会进入无限循环?
示例:街道,城镇,城市会使程序崩溃,如何用空格替换空格,'?或者至少阻止这种情况发生
printf("\nEnter address:\n");
scanf("%s", newNode->address);
printf("\nEnter department:\n");
scanf("%d", &newNode->depart);
while(validDate == 0){
printf("\nEnter Data Of Join(dd/mm/yy):\n");
if (scanf("%d%*[-/. ]%d%*[-/. ]%d", &newNode->day, &newNode->mounth, &newNode->year) != 3){
printf("Wrong format! Please enter a date and exclude the slashes! eg. 15 01 95");
}
else{
// break the loop
validDate = 1;
}
}// date validation end
答案 0 :(得分:0)
尝试
gets()
而不是scanf()。 scanf在遇到空格字符时将停止读取输入。剩下的字符串数据将保留在输入缓冲区中,这可能会导致问题。