首页 > 后端开发 > C++ > 在 C 中我应该使用 char 还是 int 进行输入验证?

在 C 中我应该使用 char 还是 int 进行输入验证?

Susan Sarandon
发布: 2024-10-28 22:30:30
原创
448 人浏览过

 Should I use char or int for input validation in C?

isdigit(c) - 利用 char 与 int 进行输入验证

检查代码时,旨在将用户输入验证为数字,问题出现了:输入变量类型应该是 - char 还是 int?

理解这个困境需要深入研究 C 中 isdigit 函数的复杂性。与它的名字相反,isdigit 需要一个整数参数,引起对 char 输入兼容性的担忧。

解释在于 C 的历史,特别是 getchar(),它以整数形式检索字符以容纳字符代码和错误代码(表示 EOF 的负值)。这种设计会产生与 char 的兼容性问题,根据编译器的不同,char 可以是有符号的,也可以是无符号的。

有符号的 char 提出了一个挑战,因为负值与 EOF 重叠,可能会导致错误。因此,isdigit 和相关函数需要将输入视为无符号字符以确保积极性。

为了确保兼容性,请按如下方式修改代码:

<code class="c">if(isdigit((unsigned char)c))</code>
登录后复制

此外,验证这一点至关重要输入流在使用 c 之前是有效的,因为关闭的流可能会使其未初始化。

以上是在 C 中我应该使用 char 还是 int 进行输入验证?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板