Formatierte Ausgabe mit printf

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Formatierte Ausgabe mit printf

    Hallo

    Ich habe ein Problem mit der Formatierten Ausgabe mit printf
    ( Ich weiss es ist Kinderkram aber ich bin halt noch ein Anfänger).
    Also ich habe mir das Buch "C von A bis Z"(2. Auflage) gekauft und möchte das nun durcharbeiten.
    Ja jetzt bin ich bei Kapitel 6 (Formatierte Ausgabe mit printf) auf der
    Seite 62 mach ich das Beispiel " printf2.c " ich habe es genau abgetippt und wollte es dann starten.
    Aber die Console hat sich sofort wieder geschlossen dann hab ich einfach nen getch() reingehauen ja dann blieb sie offen bis ein zeichen eingegeben hatte aber ich muss ja bei dem Beispiel was in eine txt Datei ausgeben.
    Ich weiss nicht wie ich das anstellen soll könnt ihr mir pls helfen???!!!

    Also ich benutze den Dev-C++ Compiler und habe Windows XP.
    So jetzt noch meinen Quellcode:
    /* printf2.c */
    #include <stdio.h>

    int main(void)
    {
    printf("Diese Ausgabe soll in einer Datei stehen\n");
    getch();
    return 0;
    }



    Bitte helft mir ich bin noch Anfänger und versteh die Fachbegriffe noch nicht so:([/i]
    !!!Metal4ever!!!
  • Quellcode

    1. /* printf2.c */
    2. #include <stdio.h>
    3. int main(void)
    4. {
    5. printf("Diese Ausgabe soll in einer Datei stehen\n");
    6. system("PAUSE");
    7. return EXIT_SUCCESS;
    8. }

    so würde ich es machen und nicht mit getch()
    ich schätze mal das man bei printf irgendein Zielort bestimmen muss oder er kann ja nicht plötzlich irgendwo was reinschreiben oder? :wink:
    Meine Sprachen: C, C++,C# PHP
    E-Mail | MSN: gre.burgstaller@aon.at
  • Danke für die schnelle Hilfe.
    Aber es geht bei mir nicht.
    Mein Compiler(Dev-C++) zeigt mir diesen Fehler an:
    "EXIT_SUCCES" undeclared
    Es soll in die Console eingeben das eine neue datei erstellt wird z.b mit dem namen datei.txt und dann steht das in der datei drinne.
    Es hat doch bestimmt noch jemand das Buch und kann mir weiter helfen.
    bin halt noch ein Anfänger sry.
    Ich zeig dir mal einen Auszug aus dem Buch(C von A bis Z):

    Die Ausgabe von printf() muss übrigens nicht ausschließlich auf dem Bildschirm erfolgen. Sie können die Standardausgabe (stdout) auch in eine Datei umleiten.

    #include <stdio.h>

    int main()
    {
    printf("Diese Ausgabe soll in einer Textdatei stehen\n");
    return 0;
    }
    Übersetzen Sie dieses Programm wie gewohnt und starten Sie es, indem Sie in einer Konsole Folgendes eingeben (als Programmname sei hier »out« gegeben):

    out > test.txt
    Jetzt befindet sich im aktuellen Verzeichnis eine Datei namens »test.txt« mit dem Inhalt, den printf() normalerweise auf dem Bildschirm ausgegeben hätte.

    [/i]
    !!!Metal4ever!!!
  • Hallo,
    erstmal muss ich hier sagen, dass ich die getch()-Version viel besser finde als system("PAUSE") - was nüchtern betrachtet Quatsch ist - sorry! Das Problem damit ist nämlich, dass dies herzlich inkompatibel und dazu sehr aufwändig (in der Ausführung ... schätze Faktor 1000) ist um nur mal eben kurz auf nen Tastendruck zu warten ...
    Ausserdem: EXIT_SUCCESS ist nur ein Makro und hat rein garnix mit C oder C++ zu tun. Sollte in stdlib.h definiert sein (leider mal wieder Compilersuite-abhängig) - und falls nicht, entweder entsprechendes includefile suchen, selber definieren oder einfach 0 (standardmäßig) zurückgeben.

    So, nun zur eigentlichen Frage: Guck mal in deinem Buch nach fopen() / fclose() - als quicky:

    Quellcode

    1. FILE *fileHandle = fopen( "datei.txt", "w" );
    2. if (fileHandle != NULL) {
    3. fprintf( fileHandle, "das sollte in der Datei landen ..." );
    4. fclose(fileHandle);
    5. }

    hoffe das passt so einigermassen ...

    Da war mal der Zielort von printf im Gespräch: fprintf bekommt einen Filestream als ersten Parameter - und printf ist im Grunde nix anderes als

    Quellcode

    1. fprintf( stdout, "output" );
    also schreibt auf die Standardausgabe - was, solange man das nicht ändert (z.B. per Aufruf als "exe > dateiname.txt") - die Konsole ist.

    grüße
    Microsoft gives you Windows, UNIX gives you the whole house.
  • Danke für die Antworten aber ich fange ja jetzt erst mit dem Buch an und ich arbeite das ja schritt weise durch und ich bin noch nit so weit nur wie oben beschrieben aber warum geht das alles bei mir nit was ihr mir da schreibt kann mir jemand mal bitte eine selbst ausprobierte antwort schicken und ich rede hier von nicht von C++ oder anderen sachen das Buch handelt nur von C!!!!!
    Also ich rede hier auch nur von diesem Buch das habe ich nur:
    http://www.galileocomputing.de/openbook/c_von_a_bis_z/

    ich hoffe es kann mir jetzt jemand helfen ich bin im mom total verwirrd von dem zeuch:(:(:(

    mfg HuNt3r
    !!!Metal4ever!!!
  • Nur keine Panik!
    das bereits gepostete war ausschliesslich C.
    Hier mal eine, von mir soeben _selbst_ausprobierte_ Version in vollem Umfang - in Datei kopieren, speichern, compilieren:

    Quellcode

    1. #include <stdio.h>
    2. int main( int argc, char **argv ) {
    3. FILE *datei = fopen( "meineDatei.txt", "w" );
    4. if (datei != NULL) {
    5. fprintf( datei, "hallo datei!\n" );
    6. fclose( datei );
    7. }
    8. return 0;
    9. }

    Das ist C pur - nix weiter und wenn du das hier nicht compilieren kannst, ist gehörig was faul und du solltest mal deinen Compiler überprüfen ;)
    Ausserdem: ein "geht nicht" hilft hier nicht weiter - bitte (be)schreib
    a) was du machen willst (Ausgabe in Datei, oder?)
    b) was du gemacht hast (evtl. Compileraufruf)
    c) den Fehler oder die Fehlermeldung beim Compilieren
    sonst kommen wir hier auf keinen grünen Zweig!

    grüße
    Microsoft gives you Windows, UNIX gives you the whole house.