|
Titlul: Parametrii functiei main Scris de: Jack ONeill din 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 :D Titlul: Răspuns: Parametrii functiei main Scris de: Duta Vlad din 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 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. Titlul: Răspuns: Parametrii functiei main Scris de: Jack ONeill din 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 :) |