2017-06-07 64 views
-1

我想知道,如果有一个命令,找到它是在变量中的类型,如果它是一个char或int。 例如,要创建一个程序,如果输入的内容不是数字,则会向用户显示错误,因为我在scanf中使用了一个int变量,但如果用户键入一个字符,程序将继续,I想要停止,当键入一个字符型字符如何区分int的char?

+1

您是否使用过您的问题? –

+1

可能的重复https://stackoverflow.com/questions/1478932/check-if-user-inputs-a-letter-or-number-in-c –

+0

@KickButtowski是的,我搜查了,但是,我没有找到我想要的方式 –

回答

0

尝试使用isdigit(int c)。它返回一个非零值,如果c在一个数字中,否则il resturs 0.欲了解更多信息,请输入'man isdigit'

+0

我已经搜索过这个函数,但是当我测试时,有错误,我现在搜索更多,并从我的理解,必须使用char这个函数,而不是int ,这是我使用 –

+0

不,@MorpheusCurriculumVitæ,你必须使用一个存储'unsigned char'值或'EOF'的int。我早些时候写了关于手册的文章?你可以[在这里找到来自OpenGroup标准的'isdigit'手册](http://pubs.opengroup.org/onlinepubs/9699919799/functions/isdigit.html)。它说,并且我引用:“* c *参数是一个** int **,应用程序应确保该值是一个可表示为** unsigned char **的字符或等于宏EOF的值。如果参数有任何其他值,则行为是不确定的。“重点不是我的。 – Sebivor

+0

@ddannel请参阅上述评论以抗议您的句子*“如果数字中有c,则返回一个非零值,否则il会恢复0。”* – Sebivor