c - C中负数的环礁值
问题描述
我正在尝试使用环礁来转换带有空格的数字字符串。我想在 C 中创建一个只取正数的循环。
到目前为止,据我了解,char 上的环礁将返回 0,同样使用 int 和 char 的组合,例如“3a”。但是,负数上的环礁是否有一个负数值范围?
根据我的第一个打印语句,我发现 -1 的结果是 18446744073709551615,-2 是 18446744073709551614,-3 是 18446744073709551613 等。
for(arg = 1; arg < argc; ++arg)
{
printf("%llu\n", atoll(argv[arg]));
if(atoll(argv[arg]) == 0 || atoll(argv[arg]) >= xxxxx))
{
printf("Enter a valid number.");
}
else
{
printf("irrelevant code here");
}
}
解决方案
从您的代码片段中,不可能找出几件重要的事情。您是否包含正确的标题,是否在 printf 中使用了正确的格式说明符和长度修饰符?在下面的示例中,您可以找到正确的包含 long long 的正确格式。
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%lld\n", atoll("-1"));
return 0;
}
/* 这个例子打印出正确的 -1 输出 */
推荐阅读
- ios - iOS 无法存档 [RN 0.63.3] AccessibilityResources.bundle not found
- html - 在 HTML 元素的文本中使用 & 符号而不声明实体引用?
- sql - 无法在 ORACLE SQL 中启用外键
- python - 如何在 pandas/dataframe 中执行以下 python 操作
- azure - Azure Function App Blob 触发器,读取 CSV 数据
- ipad - iPad 旋转到横向
- python - 如何将我的 python 输出从 XML 文件保存到 txt
- javascript - Keyup 元素事件未刷新或事件未删除
- python - Python编写1行列表键检查和设置值(如果存在)
- c++ - 有人可以解释一下这个明智的操作吗