【发布时间】:2019-04-05 03:48:22
【问题描述】:
有没有办法在不使用字符转换的情况下使用 scanf 检查输入时是否给出了某些特定字符?
int main(void)
{
if(scanf("{ ["))
printf("GOOD INPUT\n");
else
printf("BAD INPUT\n");
return 0;
}
这段代码总是给出错误的输入选项(它期望 scanf 返回值为 1),但有趣的是,如果我输入的不是所需的字符,它会立即给出错误的输入,但如果我按照它在 scanf 中指定的方式输入它会爆炸在我输入整个输入之后,我的错误输入。
所以它必须等待输入采用指定的格式,但我的问题是:如何在没有任何转换的情况下检查它,并根据输入是否正确进行相应的操作?
【问题讨论】:
-
将输入读入某物,然后进行比较。
-
是的,这是一个选项,但是如果输入可以是两种可能的格式,我有两个 scanf 函数,我需要根据输入的格式决定使用哪一个?
-
先读取输入而不考虑其实际格式,然后将输入的内容与您需要的格式进行比较。
-
对于 good 输入,“{”和“[”之间的字符是否需要正好是 1
' '? -
对我而言,没有一个空格就足够了重要的部分是字符的顺序,例如 scanf("{ [ , :") 我想将它与这个 scanf("{ [ : ,") 并根据这些字符的顺序在我的程序中决定下一步该做什么