Исключение потока при компиляции этого основного кода C ++ в XCode

Каждый раз, когда я компилирую этот код 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;
}

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;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]