• hallo ich bin dabei C mal durch zu nehmen
    so hir die frage :
    fwrite wenn der argument sizeof Struct ist funktionirt es nicht so wie sizeof char
    also habe probleme im file Integer werte einzufügen .
    kann mir einer einen bespiel bringen das ich es verstehe ?

    der

    Leben ist die Suche des Nichts nach dem Etwas. (Christian Morgenstern) und nur wer es erreicht weis er ist nichts.

  • Dein Problem ist nicht fwrite. Dein Problem ist, dass du "buffer" als Pointer deklarierst, aber nicht initialisierst. Ein Pointer ist nicht der Speicherbereich, in den du schreiben willst; ein Pointer ist ein Zeiger auf einen Speicherbereich. Und zwar auf einen Speicherbereich, den du erstmal zuweisen mußt. Etwa so:

    Code
    buffer = malloc(1000);


    Rückgabewert überprüfen nicht vergessen. Wenn die Größe wie hier aber ohnehin konstant ist, ist es meist sinnvoller, gleich ein Array zu verwenden.

    Was dein Problem mit sizeof ist, könnte man am besten sehen, wenn du ein Beispiel mit sizeof gepostet hättest. Dein Beispiel ist soweit funktionsfähig, wenn der Speicher für buffer korrekt angelegt wird.

    *plantsch*

  • wenn ich im dem struct nocht ein Int mir einlesen will geht es nicht .

    Leben ist die Suche des Nichts nach dem Etwas. (Christian Morgenstern) und nur wer es erreicht weis er ist nichts.

  • wenn ich im dem struct nocht ein Int mir einlesen will geht es nicht .


    Sehr informativ.

    Du hast dich übrigens vertippt: Der Tag für Code heißt CODE, nicht QUOTE.

    Output:

    Code
    l.txt = aaaaa, r.txt = aaaaa
    l.n = 42, r.n = 42

    Fragen?

    *plantsch*

  • sehr gut danke nur wiso ist im file selbst nicht mehr die zahl drinn ? oder sind dass codes die ich nicht verstehe ich dachte im file muss die zahl 42 sein oder so :D
    oder bin ich voll verblödet
    und ja informations protokolle sind nicht meine schwerpunkte :D
    EDIT : mein freund meint ich sag ein satz und verlangge das er alles sagt
    EDIT:
    wenn ich jetzt

    bei zweiter ausführung auskommentieren
    da es ja denn file gibt kommt

    Code
    l.txt = ��r, r.txt = aaaaa
    l.n = 8732660, r.n = 42

    Leben ist die Suche des Nichts nach dem Etwas. (Christian Morgenstern) und nur wer es erreicht weis er ist nichts.

    Einmal editiert, zuletzt von SnakE! (8. Januar 2009 um 20:07)

  • sehr gut danke nur wiso ist im file selbst nicht mehr die zahl drinn ? oder sind dass codes die ich nicht verstehe ich dachte im file muss die zahl 42 sein oder so :D


    Die Zahl wird von fwrite nicht als Text ins File geschrieben, sondern in der internen Binärdarstellung deines Computers. Wenn ich mir das File als Text ausgeben lasse, kriege ich "aaaaa*". Das sind zunächst die fünf a-Zeichen aus dem String, dann unsichtbar einige Bytes mit dem Wert 0, dann kommt das Zeichen '*', das hat im ASCII-Zeichensatz genau den Wert 42. Die Zahl ist also da, man muß nur wissen, wie man sie ausliest :) Genau das macht fread für dich.

    *plantsch*

  • noch die letzte frage und das war besser alls 2 stunden VL
    EDIT : sorry sorry nicht antworten
    das sind random zahlen :D#
    ich dachte es ist wie fscanf . fprintf wo dann im file das selbe zusehen war .

    Leben ist die Suche des Nichts nach dem Etwas. (Christian Morgenstern) und nur wer es erreicht weis er ist nichts.

    3 Mal editiert, zuletzt von SnakE! (8. Januar 2009 um 20:23)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!