C++ 将参数与C+中的整数进行比较+;

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,那么输出将是“难度等级为1”


如何将要与之进行比较的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

    // ...
}