Я делаю программу для вычисления факториала неотрицательного целого числа, но не знаю, как передать ввод через аргумент командной строки в Windows

Я работаю над программой для расчета Факториал из целого неотрицательного числа N. Я знаю логику, но не знаю, как передать ввод через аргумент командной строки, и я работаю на платформе Windows. Пожалуйста, объясните мне пример.

#include<iostream>

using namespace std;

int fact(int );

int main()
{
int n;
cin>>n;
cout<<"the fact is: "<<fact(n);

}

int fact(int n)
{
if(n>=1)
{
return n*fact(n-1);
}
else
return 1;
}

-3

Решение

Аргументы командной строки принимаются как параметры для main функция. Этот код объяснит

#include <iostream>
using namespace std;

int fact(int n) {
if (n >= 1)
return n * fact(n - 1);
else
return 1;
}

/*
* argc - No. of command line arguments passed (including filename)
* argv - Command line arguments as array of strings (including filename)
*/
int main(int argc, char ** argv) {
if (argc <= 1) {
// Only filename was received as argument
cout << "No command line args were entered. Please try again.\n";
}
else {
// There is at least one argument present
int n = atoi(argv[1]);    // convert string to int
cout << "the fact is: " << fact(n) << endl;
}
return 0;
}

Видеть это работает на Coliru Viewer.

0

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

Эта ссылка содержит всю необходимую информацию:
http://www.geeksforgeeks.org/command-line-arguments-in-c-cpp/

#include<iostream>
#include <cstdlib>
using namespace std;

int fact(int );

int main(int argc, char** argv)
{
int n;

if(argc>=2){
n = atoi(argv[1]);
}
else{
cout<<"Please enter a number: ";
cin>>n;
}
cout<<"the fact is: "<<fact(n);

}

int fact(int n)
{
if(n>=1)
{
return n*fact(n-1);
}
else
return  1;

}
-2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector