Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » parameter für kommandozeilenprog

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
13.04.2004, 19:36 Uhr
~slash-ex
Gast


wenn ich ein kommandozeilenprogramm erstellen möchte, wie kriege ich das hin, dass man das prog über die konsole mit bestimmten parametern(-...)
starten kann, wie legt man solche fest?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.04.2004, 19:47 Uhr
Pablo
Supertux
(Operator)



C++:
int main(int argc, char* argv[])
{
    return 0;
}



In argc wird gespeichert, wie viele Argumente übergegebn wurden. argc ist IMMER mindestens 1.

in argv ist dein Array gespeichert, so dass jedes Element einem Argument entspricht.
argv hat IMMER mindestens ein Element, deshalb ist argc auch mind. 1. An der ersten Stelle wird gespeichert, wie du das Programm gestartet hast.

Bsp:
wenn du das programm prog1 so aufrufst:

bash:

$ prog1 a b c


Dann ist argc 4, denn es gibt 3 Argumente + den Namen.
argv[0] ist prog1
argv[1] ist a
argv[2] ist b
argv[3] ist c

Wenn du

bash:

$ /usr/bin/prog1 a b c


aufrufst, dann ist argc ebenfalls 4, denn es gibt 3 Argumente + den Namen.
aber argv[0] ist /usr/bin/prog1
argv[1] ist a
argv[2] ist b
argv[3] ist c
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.04.2004, 19:58 Uhr
~slash-ex
Gast


danke für die schnelle antwort, aber wie kann man das verhalten für "prog1" festlegen wenn es mit dem parameter... prog1 -help z.b die hilfe anzeigen soll.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.04.2004, 07:32 Uhr
Pablo
Supertux
(Operator)


Das musst du selber programmiern, testen, wwie viel Argumente es gibt, ob darunter -help ist usw. Dafür gibt es keine vordefinierte Funktionenen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.04.2004, 11:18 Uhr
typecast
aka loddab
(Operator)


Es gibt schon Funktionen, die dir dabei helfen. Siehe die Funktion getopt aus dem Header unistd.h
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.04.2004, 11:43 Uhr
~Benny
Gast


Ich hab da ein Problem. Ich hab n Programm des mir Textdateien verschlüsselt.

als parameter will ich den Dateinamen angeben. z.B. cvers.exe test.txt


C++:
int main (int argc, char* argv[])
{
FILE *datei;

datei = fopen (argv[1],"r");

verschluesseln(datei);

return 0;



Was mach ich falsch, er bringt mir, zu viele Parameter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.04.2004, 17:17 Uhr
Pablo
Supertux
(Operator)



Zitat:

Was mach ich falsch, er bringt mir, zu viele Parameter



Ich verstehe deine Frage nicht. Was meinst du mit zu viele Parameter?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.04.2004, 07:37 Uhr
~Benny
Gast


Wenn ich mein Programm starte, also compilen und alles klappt. Dann geh ich in meine Eingabeaufforderung und starte das Programm


Code:
vers.exe test.txt


dann bekomm ich die Meldung von meiner Eingabeaufforderung, zu viele Parameter. Er kann das Programm mit Parameter nicht starten.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.04.2004, 07:39 Uhr
Pablo
Supertux
(Operator)




und das ist der Code?

C++:
int main (int argc, char* argv[])
{
    FILE *datei;

    datei = fopen (argv[1],"r");

    verschluesseln(datei);

    return 0;
}



Wenn das so ist, dann ist mir das rätselhaft.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
15.04.2004, 07:41 Uhr
~Benny
Gast


Ja das ist der code. Also der Code ist deiner Meinung nach Richtig?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: