Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przekazywanie danych do programu poprzez argumenty

Ostatnio zmodyfikowano 2009-01-04 01:33
Autor Wiadomość
zori
Temat założony przez niniejszego użytkownika
Przekazywanie danych do programu poprzez argumenty
» 2009-01-03 15:53:34
Jest to mały programik który wymaga po przekompilowaniu utworzenia sktóry i właczenia z parmetrem "-Hello" (musi byc z dużej litery) kiedys może sie to komus przydać.
Dokładniejszy opis zrobie jesli kogoś to zainteresuje bo tak to mam narazie cos innego do roboty :P

C/C++
#include <iostream>
#include <conio.h>
using namespace std;

int main( int argc, char * argv[] ) {
    if( argc == 1 ) return 0;
   
    if( strcmp( argv[ 1 ], "-Hello" ) == 0 ) cout << "dzieki za przywitanie" << endl;
   
    getch();
    return 0;
}

/edit
nie trzeba tworzyć w sumie skróty ale to najprostrzy ze sporobów uruchamiania aplikacji z dowolnym parametrem.
P-3326
DejaVu
» 2009-01-03 17:58:29
Zmieniłem trochę tytuł...
P-3329
zori
Temat założony przez niniejszego użytkownika
» 2009-01-03 17:59:57
Duzo kursów widziałem i nie było to opisywane.

P.S. Może byc taki tytuł
P-3330
lynx
» 2009-01-03 18:09:23
Manfred każdy kiedyś zaczynał naukę C++, również Ty. Więc powinieneś zrozumieć kolegę, a nie go ośmieszać. Pewnie nie wszyscy to znają, a zwłaszcza początkujący.
P-3334
DejaVu
» 2009-01-03 18:12:19
Potwierdzam. Warto zaznaczyć, że ja tego w kursie nie opisałem, a w sumie na pewnym etapie kursu powinno się to pojawić.
P-3336
pekfos
» 2009-01-03 18:24:59
a w ogóle to co robią te "int agrc chr** argv"??
P-3337
DeBugger
» 2009-01-03 18:42:21
Funkcja Main().
P-3340
zori
Temat założony przez niniejszego użytkownika
» 2009-01-03 18:43:24
Biore się za opis.

1) Jesli jak w moim przykładie utworzymi sktót z jakims parametrem i uruchomimy aplikacje to zmienna "argc" zwróci wartość 2 jeśli nie to wróci wartośc 1

2)"if (argc == 1) return 0" ten warunek jest ważny ponieważ jesli argc zwróci wartośc 1 (jak w przykąłdzie) "if (strcmp(argv[1], "-Hello") == 0" to ten warunek sporoduje bład aplikacji. Funkcja strcmp() porównuje dwa teksty (podajemy je jako dwa parametry) funkacja zwraca 0 jesli teksty są takie same.

3)argv[0] - zwraca ścieszkę do pliku .exe
argv[1] - zwraca z jakim parametrem został uruchomiony program

To chyba wystarczy narazie co nie??

Mój przykład przerobiony na lepsze
C/C++
#include <iostream>
#include <conio.h>
using namespace std;

int main( int argc, char * argv[] ) {
    if( argc == 1 ) {
        if( strcmp( argv[ 1 ], "-Hello" ) == 0 ) cout << "dzieki za przywitanie" << endl;
       
    }
    getch();
    return 0;
}

Jak widać drugi warunek zostanie pominięty jeśli nie bedzie podany jakikolwiek parametr.
P-3341
« 1 » 2 3
  Strona 1 z 3 Następna strona