Argumenty funkcji main
Ostatnio zmodyfikowano 2015-11-24 21:54
Artur-W Temat założony przez niniejszego użytkownika |
Argumenty funkcji main » 2015-11-24 19:27:35 Chciałbym napisać program w którym, wczytuję dane do pliku za pomocą argumentów funkcji main. Wiersz zaczynający się kropką będzie stanowić koniec zapisu do pliku. Przeczytałem różne poradniki, ale nie mogę rozwiązać mojego problemu. Napisałem kod źródłowy i kompilator wyrzuca mi błąd. Moglibyście dać wskazówki, porady co jest źle i jak naprawić błędy. Z góry dziękuję za pomoc i poświęcony czas. #include<stdio.h> int main( int argc, char * argv[] ) { int placa[ 100 ]; char nazwa[ 15 ]; printf( "Podaj nazwe pliku do zapisu danych \n" ); scanf( "%s\n", argv[ 0 ] ); do { printf( "Podaj nazwe pracownika i jego place" ); scanf( "%s %d\n", nazwa, placa ); argc++; argv[ argc ] = nazwa; argc++; argv[ argc ] = placa; } while(( argv[ argc ] ) != '.' ); return 0; }
|
|
michal11 |
» 2015-11-24 19:33:01 Dlaczego nadpisujesz tablice argv ? argc++; argv[ argc ] = nazwa; Tutaj zdecydowanie wychodzisz poza zakres tablicy. Czy dobrze zrozumiałem, że chcesz zapisać do pliku dane z którymi uruchamiany jest twój program ? |
|
Artur-W Temat założony przez niniejszego użytkownika |
» 2015-11-24 19:57:25 michal11 tak, dobrze zrozumiałeś. Niezbyt rozumiem te argumenty i liczyłem, że w takim programie mi się uda wszystko zrozumieć. To w pętli do while może dam zmienną typu int i, która będzie się zwiększać o 1 i użyję wtedy argv i przypiszę dane. Czy ten sposób załatwi sprawę? |
|
michal11 |
» 2015-11-24 20:42:31 Przede wszystkim nigdzie nie tworzysz pliku do którego chcesz zapisywać, jak już to zrobisz to w pętli (wystarczy zwykły for) zapisuj fprintf'em po kolei element tablicy argv do tego pliku. Przykład: for( int i = 1; i < argc; ++i ) { fprintf(...); }
Pamiętaj, że argv[0] to nazwa pliku który uruchamiasz. |
|
pekfos |
» 2015-11-24 21:54:55 To w pętli do while może dam zmienną typu int i, która będzie się zwiększać o 1 i użyję wtedy argv i przypiszę dane. Czy ten sposób załatwi sprawę? |
Najlepszy sposób by załatwić sprawę, to nie używanie rzeczy, których się nie rozumie. Używasz tych argumentów kompletnie niezgodnie z ich przeznaczeniem. Pomijając już, ze same operacje i ich cel tu też nie mają sensu. |
|
« 1 » |