Witam chciałem zrobić program który pobiera 2 liczby typu integer i znak podczas odpalania samego programu np. przez Linux'a (gcc nazwa.c) ./a.out 270 270 &
Czy jest takie coś w ogóle możliwe przez funkcje main czy należy to zrobić inaczej ?
0
0
http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html o to ci chodzilo?
I dlaczego to ma tag c#, a jest w dziale c/ c++ O.o
0
Przy takiej deklaracji main
a:
int main(int argc char *argv)
argc
- liczba argumentów, argv
- kolejne argumenty z linii poleceń (przy czym argv[0]
to ścieżka samej aplikacji, a dopiero argv[1]
to pierwszy argument).
Wykorzystaj tę wiedzę oraz atoi
;)
0
DareDevil010 napisał(a):
Witam chciałem zrobić program który pobiera 2 liczby typu integer i znak podczas odpalania samego programu np. przez Linux'a (gcc nazwa.c) ./a.out 270 270 &
Czy jest takie coś w ogóle możliwe przez funkcje main czy należy to zrobić inaczej ?
./a.out 270 270 &
Na linuchu znak & na końcu polecenia, odpali program w tle ;)
0
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
int a,b,c;
if(argc<=3) return fprintf(stderr,"Przykład użycia:\n./a.out 270 270 &");
a=atoi(argv[1]);
c=argv[2][0];
b=atoi(argv[3]);
switch(c)
{
case '+': printf("%d %c %d = %d",a,c,b,a+b); break;
case '-': printf("%d %c %d = %d",a,c,b,a-b); break;
case '*': printf("%d %c %d = %d",a,c,b,a*b); break;
case '/': printf("%d %c %d = %d",a,c,b,a/b); break;
case '%': printf("%d %c %d = %d",a,c,b,a%b); break;
default: return fprintf(stderr,"%c - nieznana operacja",c)>0;
}
return 0;
}