当 stdin
的值可以是字符(在本例中为 p 或 q)或大于零但小于最大值的整数值时,如何取值?
我曾尝试使用 %c
转换字符,但发现这意味着它会丢失第一个数字后的任何内容(显然因为它只需要一个字符)
我应该使用 %i
还是需要换一种方式?我发现 %i
对非整数的任何内容返回 0,但这只会让我检查它是否不是 int 而不是特定的 char?
干杯
最佳答案
查看scanf的返回值:
if (scanf("%d", &intInput) == 0) {
/* Nothing read. Not an integer! */
scanf("%c", &charInput);
/* Process char input */
} else {
/* Process integer input */
关于c - 当不确定它是 int 还是 char 时如何从 stdin 中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23759482/