当它可能是一个字符(在这种情况下为p或q)或者一个大于零但低于最大值的整数值时,如何获取stdin
的值?
我尝试过使用%c
转换字符,但发现这意味着它在第一个数字后丢失了任何东西(显然只需要一个字符)
我应该使用%i
代替还是我需要以不同的方式使用它?我发现%i
对于任何不是整数的东西都返回0,但这只会让我检查它是不是int而不是特定的char?
干杯
答案 0 :(得分:3)
检查scanf的返回值:
if (scanf("%d", &intInput) == 0) {
/* Nothing read. Not an integer! */
scanf("%c", &charInput);
/* Process char input */
} else {
/* Process integer input */
答案 1 :(得分:0)
检查它:isaplha
表示一个字符,isdigit
表示一个数字。