Variablen in andere Datei schreiben + aufrufen



  • Der name sagts in etwa. (ach ja gleich: ic prog noch net so lang, hab mir des Buch von nem Kumpel ausgeliehen aber der brauchts grad wieder ^^'')

    also wenn mich nicht alles täuscht sollte: (habs zumindest so gefunden)

    [cpp]#include <stdio.h>
    
    main()
    {
        FILE* speicher;
        int i = 5;
    
        speicher = fopen("speicher.dat", "w");
        fprintf(speicher, "%d", i);
        fclose (speicher);
    }[/cpp]
    

    den wert von "i" (5) in speicher.dat einschreiben.

    wenn ich ihn aber mit:

    [cpp]#include <stdio.h>
    
    main()
    {
        FILE* speicher;
        int i;
    
        speicher = fopen("speicher.dat", "r");
        fscanf(speicher, "%d", &i);
        fclose (speicher);
    }[/cpp]
    

    den wert i lade zeigt der mir 0 an.
    Wenn ic in ne txt datei schreib steht in der nix drin.
    Wo isn da der fehler^^ Wie gesagt bin noch net lang dabei 😉
    MFG Steve-o

    PS: Ach wenn ich dabei bin^^ kann mri wer nm genau die random funktion aufschreiben und die funktion zum Screen löschen? danke^^





  • also ich weiss nicht was du hast. beides funktioniert bei mir.



  • Hi^^ ich bin Steve-o jetzt aber angemeldet^^
    Mein problem ist den wert der variable in die Datei zu schreiben... des funtzt net... random hab ich im archiv gefunden ... aber kennt wer die funktion um den Screen zu löschen bzw leeren?^^



  • > Mein problem ist den wert der variable in die Datei zu schreiben... des funtzt net...
    da ist kein problem, weil deine beiden codes da oben funktionieren. wenn du andere codes hast, die nicht funktionieren, dann poste sie.

    > aber kennt wer die funktion um den Screen zu löschen bzw leeren?^^
    gibts nicht in ansi c. guck in die konsolen-FAQ.



  • 1. Arbeiten beide Programme im selben Verzeichnis? Nicht daß du eine ganz andere Datei lesen willst, als du geschrieben hast.

    2. Öffne mal die Datei "speicher.dat" mit dem Editor - was steht dort drin?



  • Big news!!! Alle drei Funktionen haben auch.... ⚠ Rückgabewerte ⚠



  • also... ich hab 32 (lol) globale variablen die da rein müssen. aber schon bei der ersten fängts an... da steht nix in der .dat datei!
    ja es sind 2 verschiedene funktionen laden und speichern^^ aber es sind die selben dateien etc. Liegts vllt daran das die variablen global sind??? wenn aj sollte ich vllt 32 neue variablen (intern) reinschreiben und denen den wert zuweisen?



  • Was TactX sagen wollte: Schau dir einfach mal an, was die Funktionen fopen(), fprintf() und fscanf() an Rückgabewerten liefern - womöglich scheitert sogar das Anlegen deiner Datei.



  • naja bin noch net lang dabei aber meines erachtens sind da keine rückgabewerte^^ und ja die datei wird erstellt.



  • Selbst wenn du sie verwirfst - da SIND Rückgabewerte (man: fprintf gibt z.B. die Anzahl an Bytes zurück, die du geschrieben hast).



  • und selbst wenn da sind... verhindert des des schreiben der datei??? naja kannsu mir mal nen gefallen tun und des ding richtig schreiben? ich mach eh nur mist wie ich grad merk^^



  • einfacher Test: ersetze die Zeile

    fprintf(speicher,"%d",i);
    

    durch

    int geschrieben=fprintf(speicher,"%d",i);
    printf("geschrieben: %d\n",geschrieben);
    


  • megarofl^^
    Wenn ich des eingebe funktioniert es auf einmal Oo Also stehen 32 Variablen, mit richtigen Werten, in meiner .dat Datei... Alle passen nur der 32. wert is auf 17000 und ein paar Zerquetschte. Ist bei der Variable nicht schlimm, da ich wie ich seh diese Variable eigentlich streichen könnte, aber wenn die letzte felerhaft is lass ichs lieber^^ danke und ach ja.
    Die 72 die geprintet wurden... was ist das? Die bit Zahl???
    Ach ja (numero 2)^^ Kennt wer nen Dateityp den ich kaum aufbekomm^^ also editierfrei oder eben ne Datei so manipulieren das nur mein programm die Datei editieren kann?
    besser so? bin halt en schwob^^



  • Subjekt Verb Objekt ("Der Jäger schiesst den Hasen"), und etwas mehr Satzbau bitte, das versteht doch kein Mensch...



  • Craw schrieb:

    ach ja die zweite^^ kennt wer nen dateityp den ich kaum aufbekomm^^ also editierfrei oder eben ne datei so manipulieren das nur mein programm die datei editieren kann?

    Aufbekommen kannst du jede Datei, es kommt nur darauf an, wieviel du mit dem anfangen kannst, was du dort liest.

    (aber versuch's mal mit Binärmodus - öffnen mit "wb" bzw. "rb" und dann lesen/schreiben mit fread()/fwrite())



  • "Too many arguments to fwrite." Hm ich las es lieber^^ Aber welchen Dateityp würdest du am besten als "Savegame" verwenden?



  • Craw schrieb:

    "Too many arguments to fwrite." Hm ich las es lieber^^

    Ne, man: fwrite ist etwas komplizierter zu verwenden als fprintf - vor allem unterstützt es keine variablen Parameterlisten.

    Aber welchen Dateityp würdest du am besten als "Savegame" verwenden?

    Kommt drauf an, wieviel in das Savegame reinsoll.



  • nun ja des ganze hat sich erledigt^^ hab ma was getestet... ich kann da irgendwie absolut jede endung hinschreiben Oo ich bekom die dateien einfach net auf aber dos kanns laden^^
    könnt ihr schließen^^


Anmelden zum Antworten