Forum: Compiler & IDEs fwrite() funktioniert nicht!


von LinuX007 (Gast)


Lesenswert?

Hallo!


Habe hier ein kleines Programm, dass einfach eine Zahl in einer Datei 
speichern soll. Warum klappt es nicht? Es kompiliert richtig, kommt aber 
dann die Meldung "Fehlerbericht senden", nachdem ich eine Eingabe 
gemacht habe und diese mit ENTER bestätigte.

1
#include <cstdlib>
2
#include <iostream>
3
#include <stdio.h>
4
5
int main (void)
6
{
7
    
8
    FILE *pFile;
9
    char read_data;
10
    char temp;
11
    
12
    pFile = fopen("C:\\messwerte.txt", "w");
13
    printf ("Zahl eingeben! ");
14
    scanf ("%d",&temp);
15
    fwrite(&temp,1,sizeof(temp),pFile);
16
    fclose(pFile);
17
    
18
    
19
    
20
}

Danke

von LinuX007 (Gast)


Lesenswert?

Habe die Übergabe-Parameter sizeof() mit "1" vertauscht, hat auch nix 
gebracht.

von Andreas K. (a-k)


Lesenswert?

%d steht für "int", "temp" ist aber "char".

von Peter (Gast)


Lesenswert?

vermutlich get

scanf("%d",&temp);

davon aus, das ein int übergeben wird, will also 4byte in &temp 
schreiben, aber der datentype ist char.

von lkmiller (Gast)


Lesenswert?

Compiler?
Zielplattform?
Bekommst du einen Filepointer (pFile != NULL)?
Semmelt das Programm bei fwrite ab, oder bei scanf()?

Auffällig ist vorerst, dass temp ein char ist,
scanf() aber ein int erwartet für %d.

Für die meisten Zielplattformen, die ich kenne ist int != char.

von Peter (Gast)


Lesenswert?

die Zielplatform sollte sich schon aus

pFile = fopen("C:\\messwerte.txt", "w");

ergeben. Wird wohl kein Atmel sein.

von Peter (Gast)


Lesenswert?

nachtrag:
Das es sich scheinbar um Windows handelt und du Binary daten 
ausschreiben willst - sollte man die datei auch mit

fopen("C:\\messwerte.txt", "wb");

öffnen.

von lkmiller (Gast)


Lesenswert?

@Peter
Ja, das war schon auch mein Verdacht.
>...die Meldung "Fehlerbericht senden"...
schränkt sogar noch das OS weiter ein (schon mal kein DOS).

Aber es gibt eben nicht nur PCs und Atmels.

Und von sollte, hätte, wäre, würde, möchte, dürfte...
sind schon etliche Falschanalysen ausgegangen ;-)

von LinuX007 (Gast)


Lesenswert?

also danke für die Ansätze, ich hab es hinbekommen ;-)

von Sauer (Gast)


Lesenswert?

junge schreib doch wie dus hinbekommen hast, alle helfen und du 
schreibst nicht das ergebnis... horst ey

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.