www.mikrocontroller.net

Forum: Compiler & IDEs fwrite() funktioniert nicht!


Autor: LinuX007 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.


#include <cstdlib>
#include <iostream>
#include <stdio.h>

int main (void)
{
    
    FILE *pFile;
    char read_data;
    char temp;
    
    pFile = fopen("C:\\messwerte.txt", "w");
    printf ("Zahl eingeben! ");
    scanf ("%d",&temp);
    fwrite(&temp,1,sizeof(temp),pFile);
    fclose(pFile);
    
    
    
}
    

Danke

Autor: LinuX007 (Gast)
Datum:

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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
%d steht für "int", "temp" ist aber "char".

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vermutlich get

scanf("%d",&temp);

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

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die Zielplatform sollte sich schon aus

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

ergeben. Wird wohl kein Atmel sein.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: LinuX007 (Gast)
Datum:

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

Autor: Sauer (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.