[英]Replacing spaces in string after input?
在下面的代码中,当用户在地址处输入空格时,程序陷入无限循环?
例如:街道,城镇,城市会使程序崩溃,如何用','替换空格? 或至少阻止这种情况的发生
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
尝试
gets()
而不是scanf()。 scanf遇到空格字符时将停止读取输入。 其余的字符串数据将保留在输入缓冲区中,这可能会导致问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.