funkcja main()

0

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

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 maina:

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;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1