Read a set of numbers from the command-line argument in the form (we follow the Unix option convension),
./main -n 1 -n 2 -n 3 -n 4 -n 5 > Out.txtand print these numbers together with their sines and cosines (in a table form) to the standard output. Something like
int main (int argc, char* argv[]) {
std::vector<double> numbers;
for(int i=0;i<argc;++i){
std::string arg=argv[i];
if(arg=="-n" && i+1<argc)
numbers.push_back(std::stod(argv[i+1]));
}
for(auto n: numbers)
std::cout << n <<" "<< std::sin(n) <<" "<< std::cos(n) <<std::endl;
exit(EXIT_SUCCESS);
}
The program can get the numbers from the command-line directly,
./main -n 1 -n 2 -n 3 -n 4 -n 5 > out.txtor, alternatively, if the line of numbers is too long, one can write the numbers into a file and then "cat" the file into the command line,
echo "-n 1 -n 2 -n 3 -n 4 -n 5" > inputfile ./main $(cat inputfile) > out.txtThe length of the command line is limited though, so the size of the file should not exceed your command line limit (probably about 2 megabytes).
Read a sequence of numbers from the standard input and print these numbers together with their sines and cosines (in a table form) to the standard output. Something like
double x;
while( std::cin >> x ){
std::cout << x <<" "<< std::sin(x) <<" "<< std::cos(x) << std::endl;
}
The program can be run as
echo 1 2 3 4 5 | ./main > out.txtor
echo 1 2 3 4 5 > input.txt ./main < input.txt > out.txtor
echo 1 2 3 4 5 > input.txt cat input.txt | ./main > out.txt
Read a set of numbers separated by whitespaces from "inputfile" and write them together with their sines and cosines (in a table form) to "outputfile". The program must read the names of the "inputfile" and "outputfile" from the command-line,
./main --input my_input_file.txt --output my_output_file.txtSomething like
int main (int argc, char *argv[]) {
std::string infile="", outfile="";
for(int i=0;i<argc;i++){
std::string arg=argv[i];
if(arg=="--input" && i+1 < argc) infile=argv[i+1];
if(arg=="--output" && i+1 < argc) outfile=argv[i+1];
}
std::ifstream myinput(infile);
std::ofstream myoutput(outfile);
double x;
if( myinput.is_open() && myoutput.is_open() ){
while( myinput >> x ){
myoutput << x <<" "<<std::sin(x)<<" "<<std::cos(x)<<std::endl;
}
}
else{
std::cerr << "Error opening files: " << infile << outfile << std::endl;
return EXIT_FAILURE;
}
myinput.close();
myoutput.close();
exit(EXIT_SUCCESS);
}