我做了一个简单的测试程序来玩 C++11 线程。
#include <iostream>
#include <stdlib.h>
#include <thread>
using namespace std;
void tee(int civ)
{
for(int loop=0; loop<19; loop++, civ++)
{
civ = civ%19;
cout << loop << "\t" << civ << endl;
this_thread::sleep_for(chrono::milliseconds(300));
}
}
void koot()
{
while(true)
{
cout << ":) ";
this_thread::sleep_for(chrono::milliseconds(300));
}
}
int main(int argc, char *argv[])
{
thread saie(tee, atoi(argv[1])),
kamaa(koot);
saie.join();
kamaa.join();
return 0;
}
只要我提供命令行参数,它就可以正常工作,但如果我不提供,它就会崩溃。如何解决?我尝试检查参数计数,如果它们存在,则无济于事。
编辑:我不得不添加这一行:
if(argc < 2) return 1;