如何获得无符号的int作为控制台参数
How to get unsigned int as console argument?
我正在尝试通过控制台参数将未签名的int值传递给我的程序。
我尝试了什么:
首先:检查ARGC是否为2,否则错误
如果有第二个值,我尝试将此值转换为:
strtoul(argv[1], NULL, 0)
所以当我通过" 100"时,我得到了" 1"
我在做什么错?
br
萨吉
€:向我的职能传递了错误的论点,发现了错误,谢谢
不看到实际代码,很难分辨出来,但是您可以将其用作基线:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[]) {
char *pCh;
unsigned long unlong = 42;
// Check enough arguments.
if (argc != 2) {
puts ("Not enough arguments");
return 1;
}
// Convert to ulong WITH CHECKING!
unlong = strtoul (argv[1], &pCh, 10);
// Ensure argument was okay.
if ((pCh == argv[1]) || (*pCh != ' ')) {
puts ("Invalid number");
return 1;
}
// Output converted argument and exit.
printf ("Argument was %ldn", unlong);
return 0;
}
成绩单如下:
pax> ./testprog 314159
Argument was 314159
如果这还不足以帮助您,我建议您发布最短的完整程序,其中显示出该问题的最短程序,然后我们可以用详细的细节告诉您什么问题: - )
您的方法应起作用。另外,您可以使用弦:
std::string str(argv[1]);
unsigned long ul;
std::stringstream(str)>>ul;
相关文章:
- 如何反转整数参数包
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 函数调用中参数的顺序重要吗
- 什么是仅调用一次并调用参数的控制台应用
- 执行带有参数的 .bat 文件并以 C++ 格式读取控制台输出
- 如何获得无符号的int作为控制台参数
- 从控制台应用中的命令行参数获取文件名C++
- 如何在C++中调用具有参数和用户控制台输入的函数
- 如何从 Windows 控制台检查程序启动参数
- 将Unicode命令行参数传递到控制台应用程序
- 如何从用户(即控制台)提供数组元素,以及如何将数组元素作为参数传递给函数
- 通过参数写入文件或控制台
- 确保Windows c++控制台应用程序的单实例和参数传递的正确方法
- 正在win32控制台应用程序中打印参数
- 如何使我的EXE可以在控制台接受参数