Ich muss nach zwei separaten Dateinamen in einem Befehlszeilenargument suchen.C++ Überprüfen Sie Befehlszeilenargumente
Der folgende Code erzeugt keinen Fehler, wenn die beiden Dateinamen identisch sind.
#include <stdio.h>
#include <iostream>
#include <stdexcept>
using namespace std;
int main (int argc, char *argv[])
{
try
{
if (argc != 3 || argv[1] == argv[2])
{
throw invalid_argument("Error");
}
}
catch (invalid_argument &ex)
{
cout << ex.what() << '\n';
}
}
Sie die Zeigeradressen vergleichen. Sie werden niemals gleich sein. Sie müssen die Zeichen des char-Arrays einzeln vergleichen. Dafür ist 'strcmp' am besten. Was Sie haben, würde funktionieren, wenn sie 'std :: string's wären (wegen Überlastung des Operators), aber nicht' char * '. –