我需要检查用户输入是否使用了正确的分隔符。但是我现在的代码仍然允许例如“15-10/1999”,这是不应该的,我不太确定如何确切地改变while条件来禁止这一点。
char delim1, delim2;
do {
printf("Please enter date (dd-mm-yy or dd/mm/yy):");
scanf("%d%c%d%c%d", &day1, &delim1, &mon1, &delim2, &year1);
} while (delim1 != '-' && delim1 != '/' && delim2 != '-' && delim2 != '/');
最佳答案
您可以使用:
while (delim1 != delim2 || (delim1 != '-' && delim1 != '/'));
这将确保满足while条件后分隔符相等,并且它是“-”或“/”。
关于c - 如何使用scanf拒绝在日期中混入定界符的输入(例如2015年1月15日)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55330017/