C++ 将参数与C+中的整数进行比较+;
我在玩弄命令行参数,我一直试图在参数编号和输入之间进行比较。因此,如果有人输入1,那么输出将是“难度等级为1”C++ 将参数与C+中的整数进行比较+;,c++,parameters,C++,Parameters,我在玩弄命令行参数,我一直试图在参数编号和输入之间进行比较。因此,如果有人输入1,那么输出将是“难度等级为1” 如何将要与之进行比较的1作为字符接受?argv是字符数组的数组 因此,使用并比较,或者更好地将其转换为std::string并比较。。。但也要确保argc大于1。例如: #include <iostream> #include <cstring> using namespace std; int main(int argc, char* argv[]) { in
如何将要与之进行比较的1作为字符接受?
argv
是字符数组的数组
因此,使用并比较,或者更好地将其转换为std::string
并比较。。。但也要确保argc
大于1。例如:
#include <iostream>
#include <cstring>
using namespace std;
int main(int argc, char* argv[])
{
int a;
if (argc > 1 && strcmp(argv[1], "1") == 0)
{
cout << "The difficulty level is " << argv[1] << endl;
return 1;
}
}
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
INTA;
如果(argc>1&&strcmp(argv[1],“1”)==0)
{
cout命令行参数是字符数组,因此您需要使用类似于std::strcmp()
的方法来比较它们,如下所示:
int main(int argc, char* argv[])
{
// check argument exists ...
if(!std::strcmp(argv[1], "1")) // 0 when equal
{
// they are the same here
}
// ...
}
从arg中创建一个'std::string可能更简单
if(std::string(argv[1]) == "1")
{
// they are the same here
}
在所有情况下,确保检查参数是否存在:
int main(int argc, char* argv[])
{
if(!argv[1]) // argument not present (null terminated array)
{
std::cerr << "Expected an argument." << std::endl;
return EXIT_FAILURE;
}
// process arg here
// ...
}
intmain(intargc,char*argv[])
{
如果(!argv[1])//参数不存在(以null结尾的数组)
{
std::cerr我想你想要的是如果(*argv[1]='1')
考虑将std::string(argv[1])
与std::string(“1”)
进行比较。当我这样做时,程序返回的结果是“1是你输入的数字”(或任何输入的数字)。我希望程序输出“难度是(输入的数字)”.我这样做了,但不起作用,所以我将argc改为argv,效果很好。谢谢。
int main(int argc, char* argv[])
{
// check argument exists ...
if(!std::strcmp(argv[1], "1")) // 0 when equal
{
// they are the same here
}
// ...
}
if(std::string(argv[1]) == "1")
{
// they are the same here
}
int main(int argc, char* argv[])
{
if(!argv[1]) // argument not present (null terminated array)
{
std::cerr << "Expected an argument." << std::endl;
return EXIT_FAILURE;
}
// process arg here
// ...
}