C++ Datei öffnen und schreiben



  • Hallo,
    bitte nicht den Kopf abreißen, wenn es sich nicht um ein Minimalbeispiel handelt. Hab ich noch nie erstellt.
    Ich habe ein Problem, wo ich nicht sehe wie ich den Fehlercode
    interpretieren soll.
    Es geht um das Öffnen einer Datei und das darauffolgende schreiben in
    diese.

    #include <stdio.h>
    #include <time.h>

    int main(void)
    {
    FILE* datei;
    datei = fopen("datei.txt","a");

    while(Loop)
    {
    fseek( datei ,0,SEEK_END);
    GetMessage(&msg, NULL, 0, 0);
    DispatchMessage(&msg);

    if( _kbhit() )
    Loop = FALSE;

    }

    void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
    {
    time_t ltime;
    struct tm *Tm;

    ltime=time(NULL);
    Tm=localtime(&ltime);

    fprintf(datei, "%02d.%02d.%04d %02d:%02d:%02d ; %4d\n",
    Tm->tm_mday,
    Tm->tm_mon,
    Tm->tm_year+1900,
    Tm->tm_hour,
    Tm->tm_min,
    Tm->tm_sec,
    HOCH
    );

    printf("%02d.%02d.%04d %02d:%02d:%02d ; %4d\n",
    Tm->tm_mday,
    Tm->tm_mon,
    Tm->tm_year+1900,
    Tm->tm_hour,
    Tm->tm_min,
    Tm->tm_sec,
    HOCH
    );

    HOCH = 0;

    }

    Die Variable "HOCH" ist hierbei ein Wert der mir extern übergeben wird.
    Es wird mir nun die Datei nicht erstellt, weil er sagt, dass
    "fprintf(datei,..." nicht deklariert ist. Kann damit nichts anfangen.
    Habe auch nicht alles selber geschrieben von dem Code, sondern aus einem
    Beispiel übernommen, da ich mich nciht so sehr mit Programmieren
    auskenne.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum C (C89 und C99) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • 1. Den Kopf abreißen sollte man dir nicht, weil das kein Minimalbeispiel ist, sondern weil du keine C/C++-Tags verwendest 🙂

    Ich habe ein Problem, wo ich nicht sehe wie ich den Fehlercode
    interpretieren soll.

    2. Ich müsste auch nur raten, weil du gar keinen Fehlercode gegeben hast...

    3. Falsches Forum (C++ und dein Code ist reines C)- gehört ins WinAPI-Forum.



  • OK, ist der Kopf halt doch weg 😃

    Der Fehlercode lautet:
    error #2048: Undeclared identifier 'datei'.



  • Sry, aber hab den 2. vergessen.

    error #2140: Type error in argument 1 to 'fprintf'; expected 'FILE *' but found 'int'.



  • Die Variable "datei" ist in der Funktion "TimerProc" nicht bekannt, da in main deklariert.



  • Das Problem ist, dass deine TimerProc()-Funktion die Variable "datei" nicht kennt. Dazu musst die Datei in der Funktion nochmal öffnen (und schließen nicht vergessen) oder den Namen als Parameter an diese Funktion übergeben. Am Ende der main()-Funktion sollte die Datei ebenfalls geschlossen werden:

    fclose(datei);
    


  • Der Name muss es nicht sein, der Deskriptor reicht auch. dann braucht er in der Funktion die Datei nicht öffnen.



  • Es fehlt übrigens eine } und Loop ist auch nicht deklariert...


Log in to reply