sonderzeichen in file??? -> absturz :(



  • achja wenn mir schon grad n profi fragen beantwortet :
    wieso hab ich am textende sowas: ýýýý oder auch sowas: ýýýýÝÝÝÝÝÝî? , wenn ich was lade?

    Hmm, das könnte vielleicht daran liegen, dass du diese Zeichen auch tatsächlich in der Datei drinnen stehen hast (also falls wir davon ausgehen, dass deine Funktion richtig funktioniert). Andererseits kann's daran liegen, dass du den String einer Funktion übergibst, die einen null-terminierten String erwartet (es läuft dann so lange im Speicher wild herum bis es eine Null gefunden hat, denn dann weiß er: "Aha! Hier hört der String auf."). Ich hab deine Funktion mal verbessert:

    char *LoadFileToObj(char* file) 
    { 
        FILE *topen; 
            if((topen = fopen(file, "rb")) != NULL) 
            { 
                int fileSize; 
                fseek(topen, 0, SEEK_END); 
                fileSize = ftell(topen); 
                if(fileSize!=0) { 
                    char *buffer; 
                    buffer = new char[fileSize+1];
                    buffer[fileSize] = 0; // Wichtig: String null-terminieren
                    fseek(topen, 0, SEEK_SET); 
                    fread(buffer, 1, fileSize, topen); 
                    fclose(topen);
    
                    return buffer; 
                } 
            } 
    
        return NULL; // Am besten du gibst NULL bei Zeigern zurück wenn es einen Fehler gab
    }
    


  • oder deinen Speicher (falls du mehr reserviert hast, als du nachher reinliest) vorher mit ZeroMemory initialisieren bzw. nach dem Einlesen eben entsprechend der Anzahl der eingelesenen Zeichen das 0-Zeichen reinsetzen.



  • aziz hatte recht, flenders nicht ^^ ich hab mit zero memory nach dem initialisieren von buffer allen inhalt von buffer auf 0 gesetzt, fehler trotzdem da...aziz' funktion klappt!
    wie kann ich n int in nen char* umwandeln?
    char *lol = char(sizeof(toLoad));
    so gehts nich 😞

    btw.: danke nochmal für die nette hilfe hier 😉



  • flenders hatte eigentlich nur meine Worte ergänzt. Er hatte nicht in Frage gestellt ob ich Recht habe oder nicht...



  • Mit itoa() kannst du einen Integer in einen String umwandeln.



  • war ja nicht bös gemeint 😉
    danke!



  • pixartist schrieb:

    war ja nicht bös gemeint 😉
    danke!

    Das nahm ich auch nicht an 😉



  • wo wir so schön dabei sind...wie heisst die msg um die schriftart eines textedits zu ändern?
    thx
    👍



  • Die heißt WM_PIXARTIST_MUSS_ERSTMAL_EIN_C++_TUTORIAL_DURCHLESEN, gefolgt von WM_PIXARTIST_MUSS_ERSTMAL_EIN_WINAPI_TUTORIAL_DURCHLESEN



  • ich bin mal nicht so gemein - WM_SETFONT 😉

    Aber der von Hepi vorgeschlagene Weg ist sicher der langfristig bessere. 🕶


Anmelden zum Antworten