Er gibt mehr aus als er sollte



  • Hallo ich wollte ein Program schreiben des den Text einer txt Datei ausgibt nun bin ich auf ein Problem gestoßen. Er gibt am ende immer noch 4mal"²" aus obwohl das nicht in der Txt Datei steht woran liegt das hier des ganze code:

    #include<stdio.h>
    #include<stdlib.h>
    void main()
    {
        FILE* Daten=fopen("Bla.txt","r");
        char *Buffer=NULL;
        int Lenge=0;
        fseek(Daten,0,SEEK_END);
        Lenge=ftell(Daten);
        fseek(Daten,0,SEEK_SET);
        Buffer=(char*)malloc(Lenge);
        for(int i=0;i<Lenge;i++)
        {
            Buffer[i]=(char)fgetc(Daten);
        }
        printf(Buffer);
        printf("\n");
        free(Buffer);
        fclose(Daten);
    }
    


  • das kommt davon, wenn man seinen String nicht mit 0 terminiert

    BTW.
    ist void main falsch! du musst int main(void) benutzen



  • Warum ist void man falsch ich kan ndes so auch benutzten habe ich gedacht



  • Original erstellt von Arniferkel:
    Warum ist void man falsch ich kan ndes so auch benutzten habe ich gedacht

    void main ist trotzdem falsch - schau mal in die FAQ


Anmelden zum Antworten