我需要检查用户输入是否使用了正确的分隔符。但是我现在的代码仍然允许例如“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/

10-08 20:39