【发布时间】:2020-06-23 22:59:54
【问题描述】:
在我的 getInput 函数中,我正在扫描用户的输入。
如果用户输入'q' 或'Q',我想打印用户希望退出的信息(从技术上讲,程序实际上不必“退出”)。
如果用户输入任何其他值,我想返回该值并继续运行我的程序。
所以,我的问题是:
如何测试某个字符值 int 到 char 的转换,类似于我在下面尝试的方法?
如果用户输入一个字符,我的程序会退出,如果用户输入一个整数,我的程序就会运行,但没有正确检测到'q' 或'Q' 已被按下。
这是我目前的代码:
int getInput() {
int numSets;
char quitTest1 = 'q';
char quitTest2 = 'Q';
//get number of sets from user
printf("\nEnter desired amount of random number sets (or 'q'/'Q' to quit): ");
scanf("%d", &numSets);
if (numSets == (int)quitTest1 || numSets == (int)quitTest2) {
printf("Exited");
}
else {
return numSets;
}
}
我可能遗漏了一些主要原则,但我似乎在 Google 上找不到太多帮助。
感谢所有答案。
【问题讨论】:
-
您已经描述了您正在尝试做的事情,但您忘记了提问。请编辑您的问题,使其提出具体的问题!
-
您是否尝试过打印
numSets来检查您是否正在做您认为您正在做的事情? -
请注意,
int result = scanf("%d", &numSets);如果读取整数失败,将返回 0。此时,您可以选择尝试读取字符。或者,您可以放弃整个方法并使用fgets读取一个字符串,然后对其进行解析。
标签: c function char type-conversion int