Fehler bei fprintf



  • Ja ich bitte um eins wenn möglich mit meinem Quelltext!!!!!!!



  • fprintf() schreibt den Text in Parameter 2 in den File in Parameter 1:

    FILE * fP;
    
    fP = fopen ( "myfile.dat" , "w+" ); 
    
    ...
    
    fprintf ( fP , "TEXT TEXT TEXT" );
    
    ...
    
    fclose ( fP );
    

    MfG SideWinder



  • danke SideWinder



  • Toll Sidewinder

    genau dasselbe hab ich auch geschrieben :-PPP

    Na ja egal

    mfg



  • @mrchat: Tip für die Zukunft: Ein Beispiel sagt mehr als tausend Bücher ;).

    MfG SideWinder



  • Wie mache ich das wenn ich Strings in eine Datei ausgeben will. Da Funktioniert keine fprintf??



  • Kommt darauf an welche Strings du schreiben möchtest:

    1.) die guten alten C-Strings:

    const char* str = "SideWinder";
    fprintf ( fP , str );
    

    2.) oder die neuen C++-Strings ( wobei man hier auch eher mit C++-Dateiverwaltung arbeiten sollte! ):

    std::string str = "SideWinder";
    fprintf ( fP , str.c_str () );
    

    MfG SideWinder



  • fprintf(fp,str);
    ist boese!

    stell euch vor str sieht so aus:
    "Ich bin mir 100%ig sicher, dass dies einen absturz verursacht!";
    und schon hat man ein Problem...

    also immer:

    printf("%s",str);
    oder natuerlich puts 😉



  • Ich habe es jetzt mit der Zweiten Varante von SideWinder geschrieben und bekomme jetzt beim ausführen, nach dem öffnem der Konsole, die Fehlermeldung:

    Test String.exe - Fehler in Anweisung

    Die Anweisung in "0x004249f0" verweist auf Speicher in "0x00000000". Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.

    Klicken Sie auf "OK", um das Programm zu beenden.
    Klicken sie auf "Abbrechen", um das Programm zu debuggen.

    Was kann ich dagegen machen?



  • Die Variante von Shade nehmen, er hat ja schon geschrieben, dass ich wieder zu schnell beim Posten war, und dass es so eben nicht geht ;).

    MfG SideWinder



  • Wie soll den das mit printf funktionieren?

    Ich habe es zur Zeit mit puts geschrieben,

    #include <iostream>
    #include <fstream>
    #include <string>
    #include "string.h"
    using namespace std;
    
    int main()
    {
        string Bezeichnung[100];
        string Preis[100];
        string P[100];
        string Rueckgabe[100];
        int aus,i;
    
        PLU_Nummer PLU;
        FILE *pf;
        pf = fopen("D:/Schule/Test/PLU.txt","w+");
        for(i=0;i<=99;i++)
        {
        P[i]=i;
        Rueckgabe[i]="NUll";
        PLU.setPlu( P[i],i);
        std::string p= P[i];
        puts (p.c_str());
        PLU.setBez (0,i);
        std::string r1 = Rueckgabe[i];
        puts (r1.c_str());
        PLU.setPreis (0,i);
        std::string r2 = Rueckgabe[i];
        puts (r2.c_str());
        }
    

    Nur das verursacht die selbe Fehlermeldung als die, die ich im letzten Post beschrieben habe.



  • Ich habe meinen Code jetzt so verändert, dass er nicht mehr abstürtzt. Nur er gibt nur

    C
    0
    0
    

    dass in die Datei aus.
    Der Code lautet jetzt

    #include <iostream>
    #include <fstream>
    #include <string>
    #include "string.h"
    using namespace std;
    
    int main()
    {
    
        string Bezeichnung[100];
        double Preis[100];
        string P[100];
        string Rueckgabe[100];
        int aus,i;
    
        PLU_Nummer PLU;
    
        for(i=0;i<=99;i++)
        {
            P[i]=i;
            PLU.setPlu( P[i],i);
            PLU.setBez ("0",i);
            PLU.setPreis (0,i);
            {
                cout<<i<<endl;
                ofstream file("PLU.txt");
                file<<P[i]<<"\n"<<0<<"\n"<<0;
            }
    
        }
    

Anmelden zum Antworten