Cでは、文字列は文字配列(文字のシーケンスへのポインタ)です。あなたのコードでは、等式演算子は、まったく異なる2つのポインター値を比較するだけです。strcmp
関数を使用するか、string
クラスを使用する必要があります。
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <fstream>
#include <cstring> // <-- here
using namespace std;
int main(int argc, char* argv[])
{
cout << argv[1] << endl;
if (strcmp(argv[1], "-r") == 0) // <-- and here
cout << "success\n";
}
また
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <fstream>
#include <string> // <-- here
using namespace std;
int main(int argc, char* argv[])
{
cout << argv[1] << endl;
if (string(argv[1]) == "-r") // <-- and here
cout << "success\n";
}