所以我試圖在啓動程序時使用cmd參數,但是我一直在遇到將變量從char轉換爲int的問題,所以它們可以與程序的其餘部分一起使用。感謝提前幫助。如何使用數組獲取命令行參數?
int main(int argc, char* argv[]) {
int n = 0, a = 0, b = 0, func = 0, choice = 0;
double w;
if(argc < 10)
{
cout << "The Program requires -f <Function> -a <Starting Point> -b <Ending Point> -m <Method> -n <Number of slices>" << endl;
exit(0);
}
else
{
int func, a, b, choice, n;
int i;
for(int i = 1; i < argc - 1; i+=2)
{
if(argv[i] == "-f"){
func = *argv[i + 1];}
else if(argv[i] == "-a"){
a = *argv[i + 1];}
else if(argv[i] == "-b"){
b = *argv[i + 1];}
else if(argv[i] == "-m"){
choice = *argv[i + 1];}
else if(argv[i] == "-n"){
n = *argv[i + 1];}
else {
cout << "Input is Invalid" << endl;
exit(0);}
cout << argv[i] << endl;
}
w = (b-a)/double(n);
next(n, a, b, w, func, choice);
}
return 0;
}
編輯:所以我重組我的代碼看起來像上面,它編譯,但我只得到else語句。例如,當使用如下行的方式啓動程序時:./a3 -f 5 -a 1 -b 10 -m 3 -n 100.我不確定爲什麼程序返回到else語句「input is Invalid」其他如果,如果其他語句。
這是什麼問題?編譯器的輸出是什麼?你得到了哪些錯誤? – MatthiasB
爲什麼你重新定義你的變量'char * func,a,b,choice,n;'? –
'char * func,a,b,choice,n'應該是'int func,a,b,choice,n'。 – Simple