c - 在 C 中读入一个正数

标签 c validation

我试图找到在 C 中读取正数的最有效方法。我不能只使用 scanf("%u", &var) 因为 scanf 取负数的补码从而搞砸了数字。我也不想手动将字符读入缓冲区,因为这需要我事先知道最大位数,实际上我只想受 UINT_MAX 限制。

有什么想法,我最有可能忽略的事情吗?

最佳答案

也许是这样的:

char sign = getchar();
if ('-' == sign) {
    //error
} else {
    ungetchar(sign);
    scanf("%u", &var) 
}

关于c - 在 C 中读入一个正数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7103796/

相关文章:

c - [Makefile] 添加颜色在 OS X 上不起作用

php - 您应该如何验证对密码设置程序的输入?

javascript - 如何使用 jAlert 转义 jQuery 函数中的实体?

validation - Angular2 FormBuilder 验证器 : require at least one field in a group to be filled

c中的char数组等于一个字母

c - C中的符号常量和宏有什么区别?

javascript - 即使没有选择任何单选按钮,Radiobutton .val()也不返回空值

javascript - If 语句 - 电子邮件验证/检查

c++ - SQLite 查询中的语法错误

C: 数组没有正确分配更多内存