MS-Dos



  • Hallo,

    Ich möchte mein Programm nicht mit Bloodshed öffnen, sondern mit der cmd.exe oder einer dos-box. Meine Frage lautet daher wie lauten die Befehle, um ein selbst geschriebens zu öffnen?

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
      printf("%d\t%s", argc, *argv);
      return 0;
    }
    

    Ich möchte nämlich auf die Eingangsvariablen argc und *argv zugreifen.



  • CMD öffnen, zum Ordner der .exe wandern, Namen der .exe eingeben 😕

    Edit:
    Abgesehen davon hat das nichts mit C zu tun 😃

    Edit:
    Wenn du deinem Programm Argumente mitgeben möchtest, musst du einfach irgendetwas hinter den Namen des Programms schreiben. Das wird dann mitgegeben.



  • Ich gebe nun in cmd.exe folgendes ein:
    "C:\users\NAME\Desktop\main Dies ist ein Test"

    Aber es kommt leider nur eine Fehlermeldung raus, dass der angegebene Pfad nicht gefunden werden kann. 😞



  • Wenn dein Programm main.exe heißt, hast du dich wohl verschrieben. Gib doch zu erst mal den richtigen Pfad ein, und lass dir dann den Ordner Inhalt anzeigen.

    cd "C:\users\NAME\Desktop"
    dir
    

    Dann sollte dir die main.exe angezeigt werden, danach dann

    main.exe hallo welt
    

    Sollte auf jeden Fall funktionieren!



  • Als erstes mußt du dein Programm durch den Compiler jagen, damit du eine EXE hast, die du dann aufrufen kannst (und die meisten Compiler packen diese EXE weder auf den Desktop noch nennen sie sie MAIN.EXE).



  • CStoll schrieb:

    Als erstes mußt du dein Programm durch den Compiler jagen, damit du eine EXE hast, die du dann aufrufen kannst (und die meisten Compiler packen diese EXE weder auf den Desktop noch nennen sie sie MAIN.EXE).

    Na, das wird er doch hoffentlich wissen.
    Obwohl... Hier gab es auch mal jemanden, der den Quelltext in Open Office geschrieben hat und an die Datei ein .exe angehängt hat 😉

    Noch eine kleine Anmerkung: argc enthält die Anzahl der übergebenen Argumente.

    Gibt aber noch ein paar Kleinigkeiten zu beachten:
    argv[0] enhält den Namen und den Pfad des Programms

    Bei Konstrukten wie "C:\users\NAME\Desktop\main Dies ist ein Test"
    wird "Dies ist ein Test" als vier Argumente gewertet, nicht als einzelner String.

    Also:

    argv[0] <Programmname+Pfad>
    argv[1] Dies
    argv[2] ist 
    argv[3] ein 
    argv[4] Test
    

    Edit: Bloodshed... Das klingt mir sehr nach Dev-C++. Manche Leute hier sehen sowas gar nicht gerne 😃



  • @Jochen:

    "C:\users\NAME\Desktop\main Dies ist ein Test"

    Dieses Konstrukt wird, falls der OP das tatsächlich mit Anführungszeichen eingegeben hat, als einzelner Kommandozeilenbefehl gedeutet.
    OHNE Parameter!

    Das bedeutet, cmd.exe versucht hier, eine Datei namens
    C:\users\NAME\Desktop\main Dies ist ein Test.exe
    zu finden.
    Dass die nicht gefunden wird, sollte klar sein.



  • @DrakoXP:
    Ist richtig, aber in diesem Fall sollten die Anführungszeichen wohl nur den Teil markieren, der letztenendes in die Konsole eingegeben wurde.



  • Danke, hat alles geklappt!


Anmelden zum Antworten