Picture 因此,我的C ++程序将连接到我的服务器以下载并安装最新版本。当有可用的更新时,它将下载Setup.exe文件,然后启动它。 setup.exe将安装新文件,然后使用“ -rs”参数启动新程序。客户端/服务器端的更新代码都可以正常工作,但是由于某种原因,程序未采用“ -rs”参数。它告诉我未指定“ -rs”,这很奇怪,因为如果键入std :: cout << argv 1,它将在控制台输出-rs。我什至尝试制作一个快捷方式,以“ -rs”启动程序,但仍然说-rs不等于-rs。
if (argc == 2)
{
std::cout << "There are 2 arguments." << std::endl;
std::cout << "'" << argv[1] << "' is the second argument." << std::endl;
if (argv[1] != "-rs")
{
std::cout << "'" << argv[1] << "' is not equal to '-rs' WTF?" << std::endl;
}
}
答案 0 :(得分:0)
您正在将单个字符指针与整个字符数组进行比较,请尝试为argv!=“ -rs”指定条件语句是错误的。是的,如果您使用命令行参数,那么您需要给出2个要比较的索引,例如argv [index] [index]
std::cout << "There are 2 arguments." << std::endl;
std::cout << "'" << argv[1] << "' is the second argument." << std::endl;
if (argv != "-rs")
{
std::cout << "'" << argv[1] << "' is not equal to '-rs' WTF?" << std::endl;
}
OR
char argv[2][4] = {"-ws","-rs"};
std::cout << "There are 2 arguments." << std::endl;
std::cout << "'" << argv[1] << "' is the second argument." << std::endl;
if (argv[1] != "-rs")
{
std::cout << "'" << argv[1] << "' is not equal to '-rs' WTF?" << std::endl;
}