Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Parameter von main

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 <
000
11.12.2005, 20:12 Uhr
~Tom24
Gast


wie rufe ich die Parameter von main auf das wie übergebe ich sie?

Das funktioniert bei mir irgendwie nicht!

wie musste der aufruf heissen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.12.2005, 20:25 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Was meinst du mit Parameter von main ? Meinst du alles, was du hinter den Programmnamen angehängt hast?
Also argv[] und argc ?
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.12.2005, 20:28 Uhr
Pler
Einer von Vielen
(Operator)


http://publications.gbdirect.co.uk/c_book/chapter10/arguments_to_main.html

Dort ist auch ein kurzer Beispielcode. Ich denke mal das ist wonach du suchst.
Aber was meinst du mit übergeben?
Also wenn man ls aufruft kann man verschiedene Argumente übergeben Zum beispiel ein schalten, für ein spezielles Verhalten und das Verzeichnis. Übergeben werden sie einfach nach dem Programmnamen in der Shell.


Bash:

ls /tmp -l

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.12.2005, 20:34 Uhr
~Tom24
Gast


ich meine einfach den Aufruf der .exe datei:

ich habe ein programm geschrieben das testarg heisst!

wenn ich mein Programm starten möchte unter dos... müsste ich doch schreiben folgendes eingeben :


C.....\testarg.exe 5

(5 ist in diesem Fall der übergebene Parameter)

Diese Eingabe geht jedoch bei mir nicht??

Wo liegt da mein Fehler?


Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.12.2005, 20:55 Uhr
Pler
Einer von Vielen
(Operator)


Wenn du das folgendermaßen schreibst:


C++:
#include <stdio.h>

int main( int argc , char* argv[] )
{
     printf( "%s\n" , argv[1] );
     return 0;
}



sollte es eigentlich gehen.
ansonsten poste doch mal dein Quellcode.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.12.2005, 21:04 Uhr
~Tom24
Gast


Ist ein einfaches Programm will halt nur mal die Übergabe ausprobieren :-)

C++:
int main (int argc,char **argv)
{
    if(argc<2)
    {
        printf("Fehler in der Eingabe");
    }
    if(argv[0][0]==5)
    printf("ok");

    return 0;
}



ich wollte

dies nun mal mit c: ....testarg.exe 5 ausprobieren....

und das funktioniert nicht.....

aber warum?

Bearbeitung von 0xdeadbeef:

Ich hab mir mal erlaubt, cpp-tags einzufügen, den Code ein bisschen lesbarer zu formatieren und den void main()-bug zu entfernen.


Dieser Post wurde am 11.12.2005 um 22:04 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.12.2005, 21:13 Uhr
Pler
Einer von Vielen
(Operator)


Es muss

C++:
if(!strcmp( argv[1] , "5" ));


heissen.

Du kannst Zeichenketten nicht mit == prüfen. Auch zuweisungen und so sind nicht (so) möglich.
Ausserdem blos eine klammer[]!
5 Muss in "" gesetzt werden, da es sich um eine Zeichenkette handelt.

Ach so:

C++:
argv[1][0] == '5'


würd auch gehn, dann darfst du aber die '' nicht vergessen. Da du sonst den ASCII-Code verhgleichst, nicht das Zeichen! Ohne die '' müsstest du den entsprechenden ASCII-Code hinschreiben.

Edit:
Es muss auch argv[1] sein, denn argv[0] ist der programmname selber. ( Oder der Pfad)

Dieser Post wurde am 11.12.2005 um 21:16 Uhr von Pler editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
11.12.2005, 21:27 Uhr
~Tom24
Gast


Vielen Dank für Eure Hilfe...

Es funktioniert endlich :-)

Schönen Abend noch.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: