Forum: PC-Programmierung C++ Datei öffnen und schreiben


von Hydro (Gast)


Lesenswert?

Hallo,

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.
1
#include <stdio.h>
2
#include <time.h>
3
4
int main(void)
5
{  
6
  FILE* datei;
7
  datei = fopen("datei.txt","a");
8
9
while(Loop)
10
  {
11
    fseek( datei ,0,SEEK_END);
12
    GetMessage(&msg, NULL, 0, 0);
13
    DispatchMessage(&msg);
14
15
    if( _kbhit() )
16
      Loop = FALSE;
17
18
  }
19
20
void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
21
{
22
  time_t ltime;
23
  struct tm *Tm;
24
   
25
  ltime=time(NULL);
26
  Tm=localtime(&ltime);
27
28
  
29
  fprintf(datei, "%02d.%02d.%04d %02d:%02d:%02d ; %4d\n",
30
              Tm->tm_mday,
31
         Tm->tm_mon,
32
         Tm->tm_year+1900,
33
         Tm->tm_hour,
34
         Tm->tm_min,
35
         Tm->tm_sec,
36
         HOCH
37
     );
38
   
39
  printf("%02d.%02d.%04d %02d:%02d:%02d ; %4d\n",
40
              Tm->tm_mday,
41
         Tm->tm_mon,
42
         Tm->tm_year+1900,
43
         Tm->tm_hour,
44
         Tm->tm_min,
45
         Tm->tm_sec,
46
         HOCH
47
     );
48
49
  HOCH = 0;
50
51
}

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.

von Εrnst B. (ernst)


Lesenswert?

Hydro schrieb:
> Habe auch nicht alles selber geschrieben von dem Code, sondern aus einem
> Beispiel übernommen, da ich mich nciht so sehr mit Programmieren
> auskenne.

So schauts aus... Wildes Zusammengewurschtel von Win32-API Funktionen 
mit unix (Posix)-Funktionen.

Wenn du Code aus dem Internet zusammenkopierst, achte darauf, dass alle 
deine Quellen für das gleiche Betriebsystem gedacht sind.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der "Code" ist so nicht übersetzbar.

Einerseits ist TimerProc in main() enthalten (was nicht geht, C kennt 
keine lokalen Funktionen), andererseits ist "datei" in TimerProc nicht 
bekannt.

"Loop" und "msg" sind nicht definiert, ebensowenig "HOCH", auch wenn Du 
schreibst, daß das irgendwoher extern übergeben werden soll.

Mindestens aber fehlt die schließende geschweifte Klammer von main().

Poste den Code, den Du versuchst durch den Compiler zu jagen, nicht 
irgendwelche falschen Codeschnipselfetzen.

von ... (Gast)


Lesenswert?

Das nennt man mal einen "kreativen Programmcode".

Selten so einen Durcheinander gesehen.

(ich glaube hier ist der C++-Noob aus dem Nachbarthread am werk)


Entscheide dich mal zwischen C (main ()) und Win32-Code (CALLBACK, 
Dispatch).

von Vlad T. (vlad_tepesch)


Lesenswert?

der code hat auch nix mit C++ zu tun, das ist reiner C-Code

von Arc N. (arc)


Lesenswert?

Εrnst B✶ schrieb:
> Hydro schrieb:
>> Habe auch nicht alles selber geschrieben von dem Code, sondern aus einem
>> Beispiel übernommen, da ich mich nciht so sehr mit Programmieren
>> auskenne.
>
> So schauts aus... Wildes Zusammengewurschtel von Win32-API Funktionen
> mit unix (Posix)-Funktionen.

Welche unix/posix-Funktionen (Posix hat nur die C-Bibliotheken in den 
Standard übernommen)? _kbhit ist DOS, der Rest ist Win32 und Standard-C.

Ansonsten würde ich einfach raten, dass in dem Teil mit TimerProc 
irgendwo das passende Include fehlt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.