每次我编译这个 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;
}
每次我编译这个 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;
}
argc>=2
在将 argv[1] 分配给 string 之前,您忘记检查了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;
}