C++使用命令行参数
C++ using command line args
我打算在命令行中输入一个数字,比如说"./a.out 3",其中3是我试图检索的数字。我想知道为什么在我的例子中,我试图输出的两个数字不一样,从命令行参数中提取信息的最实用的方法是什么?感谢
int main(int argc, char* argv[]){
char* openSpace = argv[1];
int temp = *openSpace;
cout<<*openSpace<<" is the open spot!"<<endl;
cout<<temp<<" is the open spot!"<<endl;
return 0;
}
argv[1]
是char*
,您需要int
。不幸的是,您不能仅仅更改变量的类型。相反,您必须将char*
转换为int
。为此,请使用atoi()
函数。
int temp = atoi(argv[1]);
什么意思,它们不一样?他们当然是!第一个将字符"3"打印为字符,第二个将其打印为整数。也就是说,您可以获得字符"3"的ASCII值。
如果你想得到一个整数值,你可以使用atoi()
、strtol()
、boost::lexical_cast<int>()
等。
不能使用int temp = *openSpace;
之类的赋值将字符串转换为整数。您需要为此调用一个函数,比如标准C库中的atoi()
。
相关文章:
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 使用 C++ 将命令行参数拆分为参数/向量
- 如何在OMNET++中添加专门的命令行参数?
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- atoi() 在应用于大型命令行参数时会产生不正确的值
- 是否可以在命令行中将输入参数传递给可执行文件
- 命令行参数,cant 或两个变量
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- 如何在 Android/NDK 上将命令行参数从 gradlew.bat 传递到 Clang
- 编写一个将 LLVM IR 文件作为命令行参数的程序
- 通过命令行参数获取llvm ir文件时面临问题
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- 从命令行获取参数时出现问题
- 如何在不使用文件扩展名的情况下使用命令行参数打开C++中的文本文件?
- 命令行参数在不到 3 个 LOC 中 int?
- 在命令行参数中使用引号
- 使用参数 + stdout + stderr 从命令行调用 MFC 应用程序
- 在VS2013中使用devenv (C++)传递命令行参数argv
- 二进制数据作为命令行参数