コマンドライン引数として2つのintを受け取るプログラムを作成しようとしています。intは両方とも0より大きい必要があります。charから変換する必要があることは理解していますが、これまでにatoiを使用して行ったことがありますが、これは行うべきではないことがわかっています。人々がsstreamsとstrtolを使用しているのを見たことがありますが、この場合、それらがどのように機能するかはわかりません。これを達成するための最良の方法は何ですか?
#include <iostream>
#include <string>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
const int N = 7;
const int M = 8;//N is number of lines, M number of values
//--------------
//-----Main-----
//--------------
int main(int argc, char* argv[])
{
if((argc != 0) && (argv[0] != NULL) && (argv[1] != NULL))
{
N = argv[0];
M = argv[1];
}
else
{
cout << "Invalid or no command line arguments found. Defaulting to N=7 M=8.\n\n" << endl;
}
//Blah blah blah code here
return 0;
}