Ĺadny brzuch
Mam 2 pytania:
1. Jak program ma pobrac sciezke pod którą jest odpalony?
2. Jak program ma sie wylaczyc jezeli zostanie spelniony warunek?
Ma to wygladac tak:
if (warunek)
{
Wylącz sie
}
1.
int main(int argc, char *argv[]) { cout << argv[0] << endl; // argv[0] zawiera ścieżkę }
2.
void exit(int ExitCode);
Dodaj cstdlib.
1.Ścieżka:char s[256]; strcpy(s,argv[0]); int i=strlen(s)-1; while(i--)if(s[i]=='\\')break; s[i]=0; cout << s << endl;
2. alternatywnie
if( warunek ) return kod;
:P chyba w pierwszej lekcji na temat C++ gdzie przedstawiaja hellow world juz jest o return ;-)
1. ewentualnie pod WinAPI mozesz sprobowac cos w stylu:
char path[256]; GetModuleFileNameEx( hInstance /* to z WinMain, albo GetModuleHandle(NULL) */, path, 256 );
Użytkownik icek edytował ten post 30 grudzień 2006, 17:01
2. alternatywnie
if( warunek ) return kod;
:P chyba w pierwszej lekcji na temat C++ gdzie przedstawiaja hellow world juz jest o return ;-)
Tylko problem z tym będzie gdy np. return damy w jakiejś funkcji (nie głównej). :D
Dzieki,
A jak teraz mam sprawdzic np. czy scieżka to np. "C:\jakisplik", skoro mam ją w 'char'?
PS. No wlasnie jak dam return to zakończe funkcje a chce zakończyć cały program :/
Użytkownik Macok edytował ten post 30 grudzień 2006, 18:48
strcmp z cstring.
jak dasz return w main to zakonczysz program, exit jest uniwersalne.
W pętli cieżko porównać dwie tablice charów :>
Jedna z tą przykładową ścieżką a drugi z aktualną.
Ok dzieki,
nie wiedzialem jak to zrobic z return bo w moim programie jest wątek z petlą nieskończoną, ale sie udalo :)
A jak z drugim problemem?
Musze sprawdzic czy sciezka do pliku to np. "C:\plik.exe". Wszyskto by bylo fajnie gdyby nie to ze sciezka jest w 'char[]'.
przeczytales co napisalem? jak nie to przecztaj raz jeszcze prosze.. (strcmp)
A co mam zle w tym:if (strcpm(argv[0], "C:\program.exe")==0) { cout << "sciezka poprawna" << endl; } else { cout << "sciezka niepoprawna" << endl; }
Użytkownik Macok edytował ten post 30 grudzień 2006, 19:48
literowka w nazwie funkcji... -_-
Użytkownik icek edytował ten post 30 grudzień 2006, 21:22
:oops: juz poprawiam.
Dzieki wszystkim za pomoc!
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
1. Jak program ma pobrac sciezke pod którą jest odpalony?
2. Jak program ma sie wylaczyc jezeli zostanie spelniony warunek?
Ma to wygladac tak:
if (warunek)
{
Wylącz sie
}
1.
int main(int argc, char *argv[]) { cout << argv[0] << endl; // argv[0] zawiera ścieżkę }
2.
void exit(int ExitCode);
Dodaj cstdlib.
1.Ścieżka:char s[256]; strcpy(s,argv[0]); int i=strlen(s)-1; while(i--)if(s[i]=='\\')break; s[i]=0; cout << s << endl;
2. alternatywnie
if( warunek ) return kod;
:P chyba w pierwszej lekcji na temat C++ gdzie przedstawiaja hellow world juz jest o return ;-)
1. ewentualnie pod WinAPI mozesz sprobowac cos w stylu:
char path[256]; GetModuleFileNameEx( hInstance /* to z WinMain, albo GetModuleHandle(NULL) */, path, 256 );
Użytkownik icek edytował ten post 30 grudzień 2006, 17:01
2. alternatywnie
if( warunek ) return kod;
:P chyba w pierwszej lekcji na temat C++ gdzie przedstawiaja hellow world juz jest o return ;-)
Tylko problem z tym będzie gdy np. return damy w jakiejś funkcji (nie głównej). :D
Dzieki,
A jak teraz mam sprawdzic np. czy scieżka to np. "C:\jakisplik", skoro mam ją w 'char'?
PS. No wlasnie jak dam return to zakończe funkcje a chce zakończyć cały program :/
Użytkownik Macok edytował ten post 30 grudzień 2006, 18:48
strcmp z cstring.
jak dasz return w main to zakonczysz program, exit jest uniwersalne.
W pętli cieżko porównać dwie tablice charów :>
Jedna z tą przykładową ścieżką a drugi z aktualną.
Ok dzieki,
nie wiedzialem jak to zrobic z return bo w moim programie jest wątek z petlą nieskończoną, ale sie udalo :)
A jak z drugim problemem?
Musze sprawdzic czy sciezka do pliku to np. "C:\plik.exe". Wszyskto by bylo fajnie gdyby nie to ze sciezka jest w 'char[]'.
przeczytales co napisalem? jak nie to przecztaj raz jeszcze prosze.. (strcmp)
A co mam zle w tym:if (strcpm(argv[0], "C:\program.exe")==0) { cout << "sciezka poprawna" << endl; } else { cout << "sciezka niepoprawna" << endl; }
Użytkownik Macok edytował ten post 30 grudzień 2006, 19:48
literowka w nazwie funkcji... -_-
Użytkownik icek edytował ten post 30 grudzień 2006, 21:22
:oops: juz poprawiam.
Dzieki wszystkim za pomoc!