0

このC++コードをコンパイルするたびに、理解できないスレッド例外が発生します。ここで何が問題になっていますか?

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[]) {
    string arg = argv[1];

    if (arg == "-r")
        cout << "First arg is -r" << endl;

    return 0;
}  
4

1 に答える 1

0

argc>=2文字列にargv[1]を割り当てる前に確認するのを忘れましたarg
パラメータを渡してこのプログラムを実行してもよろしいですか?

可能な修正:

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[]) 
{
    if(argc<2)
    {
      cerr << "Not enough parameters" << endl;
      abort();
    }

    string arg = argv[1];

    if (arg == "-r")
        cout << "First arg is -r" << endl;

    return 0;
}
于 2012-11-27T10:54:45.250 に答える