Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Parametrii functiei main  (Citit de 2017 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
MihailP
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« : Decembrie 28, 2014, 20:22:34 »

Salutare!

Am o problema care suna cam asa:

Intr-un fisier de intrare "in.txt" se afla numere intregi separate intre ele prin spatii si organizate pe mai multe linii. Afisati pe ecran numerele care se termina cu cifra 5 sau 0. Transmiteti ca argumente la program fisierul de intrare (primul argument) si valorile posibile pentru ultima cifra (urmatoarele n argumente).

La ce se refera chestia cu "argumente la program" si cum se rezolva efectiv? Eu am citit pe net ceva de argumente la functia main si am dat peste un int arcg si un char ** argv. Au vreo legatura parametrii mei cu arcg si argv? Ce sunt acesti doi parametrii (arcg si arcv)? Am vazut ca peste tot sunt notati la fel...arcg si argv...sunt notatii consacrate sau sunt notatii obligatorii? La ce se refera mai exact cei doi parametrii ?

Multumesc  Very Happy
Memorat
Vman
Echipa infoarena
Vorbaret
*****

Karma: 45
Deconectat Deconectat

Mesaje: 176



Vezi Profilul
« Răspunde #1 : Decembrie 29, 2014, 09:35:38 »

Pentru a pasa argumente unui program, functia main trebuie sa aiba urmatoarea semnatura:

Cod:
int main(int argc, char **argv)

unde argc va avea la rulare o valoare egala cu numarul de argumente (argument count), iar agv va fi un vector de stringuri (argument values). De notat ca primul argument (argv[0]) va fi mereu numele programului. Nu este obligatoriu ca aceste variabile sa se numeasca argc si argv, insa asa cum ai intuit aceasta este notatia consacrata si iti recomand sa o folosesti pentru claritate.

De exemplu, daca am rula un program astfel:

Cod:
./program ab cd 123

atunci variabilele argc, respectiv argv la intrarea in program vor arata astfel:

Cod:
argc = 4
argv = { "program", "ab", "cd", "123" }

Observi ca argumentele sunt separate prin spatii, daca vrei ca un argument sa contina spatii in interior va trebui sa il pui intre ghilimele duble.
Memorat
MihailP
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #2 : Decembrie 29, 2014, 12:37:40 »

Am inteles acum la ce se refera cele doua argumente dar am dat de un alt exemplu cre imi face probleme: intr-o mini "baza de date" BD sunt memorate 3 tabele, acestea fiind salvate in 3 fisiere...apoi se dau mai multe date despre problema in sine si apoi ceea ce nu inteleg : "Numele BD va fi transmis ca argument la program, si va fi interpretat ca si cale (absoluta sau relativa) in care se afla cele trei fisiere ale BD." Cum ar trebui sa interpretez ultima fraza si cum se rezolva concret?
Multumesc Smile
« Ultima modificare: Decembrie 29, 2014, 12:44:20 de către Plesa Mihail-Iulian » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines