Startprobleme



  • [quote="groovemaster"][quote="hanna1"]warum zeigt er die Miegliedsnummer und die Postleitzahl nich an[/quote]
    Das liegt genau daran, dass es nicht umgewandelt wurde. In deiner Datei steht nunmal Text. Mitgliedsnummer, Postleitzahl und Eintrittsjahr sind im Programm aber ganzzahlige Werte.
    Schreiben kannst du die Datensätze wie folgt

    fprintf(Datei, "%i %s %s %i %s %i",
        STRUKT[i].mgnr,
        STRUKT[i].nvn,
        STRUKT[i].str,
        STRUKT[i].plz,
        STRUKT[i].ort,
        STRUKT[i].etj);
    

    Und lesen

    fscanf(Datei, "%i %s %s %i %s %i",
        &STRUKT[i].mgnr,
        STRUKT[i].nvn,
        STRUKT[i].str,
        &STRUKT[i].plz,
        STRUKT[i].ort,
        &STRUKT[i].etj);
    

    Dabei ist zu beachten, dass die scanf-Funktionen Strings ua nur bis zum nächsten Leerzeichen einlesen. Das sollte aber bei deinen Daten wohl keine Probleme machen.[/quote]

    tut mir leid ich bin wahrscheinlich noch zu dämlich muss das in aendern, oder Eingabe oder Anzeige rein oder wo? Wenn ja wie?
    noch ein Problem ich muss ja wenn ich in aendern etwas aendern will den Cursor am Anfang haben.



  • fprintf schreibst du dort rein, wo die Daten in die Datei geschrieben werden sollen. Also dorthin, wo du jetzt fwrite stehen hast. fscanf ist dann fürs Lesen der Datei zuständig.

    hanna1 schrieb:

    noch ein Problem ich muss ja wenn ich in aendern etwas aendern will den Cursor am Anfang haben

    Und das Problem wäre...



  • [quote="groovemaster"]fprintf schreibst du dort rein, wo die Daten in die Datei geschrieben werden sollen. Also dorthin, wo du jetzt fwrite stehen hast. fscanf ist dann fürs Lesen der Datei zuständig.

    [quote="hanna1"]noch ein Problem ich muss ja wenn ich in aendern etwas aendern will den Cursor am Anfang haben[/quote]
    Und das Problem wäre...[/quote]

    Das Problem mit dem Cursor wäre, wenn ich etwas ändern will müsste er auf mgnr. stehen da ich ihn ja nicht rückwärts bewegen kann.

    Ich habe alles so geändert wie du gesagt hast aber es ist immer noch nicht richtig jetzt zeigt er es so an stimmt das?

    0 Spiekermann_Hubert mIW_eihsfo1_6 0 Menden 00 Spiekermann_Michael mIW_eihsfo1_6 0 Menden 00 Spiekermann_Hubert eHmiekwrge2_9 0 Menden 00 Spiekermann_Klaus lAetanrets_r91 0 Iserlohn/Hemer 0



  • hanna1: Bitte, mach mal den BB-Code an! Ist das denn so schwer? Fragst du dich nicht manchmal selber, warum deine Postings so scheiße aussehen? 🙄 Warum die überhaupt noch jemand liest ist mir ein Rätsel!



  • [quote="MaSTaH"]hanna1: Bitte, mach mal den BB-Code an! Ist das denn so schwer? Fragst du dich nicht manchmal selber, warum deine Postings so scheiße aussehen? 🙄 Warum die überhaupt noch jemand liest ist mir ein Rätsel![/quote]
    Wenn du dir die Mühe gemacht hättest und einwenig zurück gelesen hättest, wäre dir vielleicht aufgefallen das es darum geht, was mein Programm in die Datei schreibt, was leider falsch ist und deshalb beim auslesen falsch angezeigt wird. Und das habe ich gepostet. Diesmal war ich noch sehr höflich das nächste Mal werde dir ich ein paar Zeilen schreiben die du so schnell nicht vergisst



  • Soll ich jetzt Angst haben? Hast du überhaupt gelesen (bzw. verstanden) was ich gesagt habe? Scheinbar nicht, denn der Quote funktioniert immer noch nicht. Gehe mal bitte in dein Profil und stelle die Option "BBCode immer aktivieren:" auf Ja. Wenn du das nicht schaffst dann weiß ich auch nicht... Nach über 50 Posts sollte es dir auch aufgefallen sein, dass die Tags bei dir nicht funktionieren.



  • Btw, ersetze in groovemasters Code alle %i durch %d, dann klappts auch mit den Dateien.



  • hanna1 schrieb:

    Ich habe alles so geändert wie du gesagt hast aber es ist immer noch nicht richtig jetzt zeigt er es so an stimmt das?

    0 Spiekermann_Hubert mIW_eihsfo1_6 0 Menden 00 Spiekermann_Michael mIW_eihsfo1_6 0 Menden 00 Spiekermann_Hubert eHmiekwrge2_9 0 Menden 00 Spiekermann_Klaus lAetanrets_r91 0 Iserlohn/Hemer 0

    Keine Ahnung ob das stimmt. Das kannst du dir nur selbst beantworten. Es sieht aber auf jedenfall schon mal besser aus als vorher. Die PLZ kannst du ja noch entsprechend formatieren, das %i zu %05i ändern. Das einzige was mir noch komisch vorkommt, sind diese Sachen

    mIW_eihsfo1_6

    Hiess das nicht Im_Wieshof_16? Scheint so, als wären die Bytes geswapped.



  • MaSTaH schrieb:

    Btw, ersetze in groovemasters Code alle %i durch %d, dann klappts auch mit den Dateien.

    Darf man mal fragen, was sich dann ändern soll? Afaik hat %d exakt die gleiche Bedeutung wie %i.



  • Einen Versuch ist es doch wert. Hatte es zumindest als Quelle für die komischen Zeichen in Betracht gezogen, weil überall dort, wo Zahlen stehen sollten scheinbar Mist steht. Auch vorstellen könnte ich mir, dass die Datei nicht im Textmodus geöffnet wurde. Aber da ich sowieso größtenteils, aus gutem Grund, auf solch vorsintflutliche Funktionen wie fprintf und fscanf verzichte mag ich kein qualifizierter Ansprechpartner für dieses Problem sein.



  • Ich denke, das mit den komischen Zeichen hat sich geklärt. Es lag einfach daran, dass vorher die Daten praktisch 1:1 aus dem Speicher in die Datei geschrieben wurden. Bei Zeichenketten ist das ja kein Problem, bei zB Integer aber schon. Mittlerweile sieht die Ausgabe ja auch ok aus. Lediglich die Daten selbst scheinen nicht zu stimmen.
    Und mit Funktionen wie fprintf oder fscanf arbeite ich auch nicht, sondern mach sowas in richtigem C++. Da aber 'eh Funktionen wie fopen benutzt wurden, schien mir das die einfachste Lösung zu sein. Und ohne Code-Tags bekomm ich irgendwie Augenkrebs.



  • [quote="groovemaster"][quote="hanna1"]Ich habe alles so geändert wie du gesagt hast aber es ist immer noch nicht richtig jetzt zeigt er es so an stimmt das?

    0 Spiekermann_Hubert mIW_eihsfo1_6 0 Menden 00 Spiekermann_Michael mIW_eihsfo1_6 0 Menden 00 Spiekermann_Hubert eHmiekwrge2_9 0 Menden 00 Spiekermann_Klaus lAetanrets_r91 0 Iserlohn/Hemer 0[/quote]
    Keine Ahnung ob das stimmt. Das kannst du dir nur selbst beantworten. Es sieht aber auf jedenfall schon mal besser aus als vorher. Die PLZ kannst du ja noch entsprechend formatieren, das %i zu %05i ändern. Das einzige was mir noch komisch vorkommt, sind diese Sachen
    [quote]mIW_eihsfo1_6[/quote]
    Hiess das nicht Im_Wieshof_16? Scheint so, als wären die Bytes geswapped.[/quote]

    Hallo
    Ich habe alles mit char deklariert. Jetzt zeigt er alles richtig an wenn ich anzeigen auf rufe. Aber bei der Zeile

    cin>>suche;
    if(suche == STRUKT[i].mgnr) in dieser Zeile zeigt der Compiler den Fehler
    expression must be a pointer or a zero constant
    hast du eine Ahnung wie ich das ändern muss?
    Danke im voraus



  • Bist du dir sicher, dass der Fehler in dieser Zeile steckt? Ich kann daran erstmal nichts falsches erkennen, sofern 'suche' dem Originalcode entsprechend vom Typ int ist.


Anmelden zum Antworten