eine frage



  • [quote="net"]

    Cico schrieb:

    Ich hatte ebenfalls recht mit der Aussage das es ein End of File Marker ist...

    warum willst du mit aller gewalt recht behalten?

    Weil ich mir von dir nicht sagen lasse das ich im unrecht bin,wenns nicht so ist...EndOfFile 😃



  • Cico schrieb:

    Weil ich mir von dir nicht sagen lasse das ich im unrecht bin,wenns nicht so ist...

    es war aber so.
    das meinte ich:

    Cico schrieb:

    EOF ist in dem fall ein #define das -1 oder 0 sein kann...es markiert aber trotzdem das Ende eines strings.

    1. ist EOF nicht das ende eines strings. strings werden in c mit einer 0 begrenzt
    2. kann EOF nicht 0 sein denn dann könte man keine nullen in files schreiben

    edit: punkt 2 nehm' ich wieder zurück 😉



  • so um mal hier mit den Spekulationen aufzuräumen

    ISO/IEC 9899:1999 7.19.1.3 schrieb:

    3 The macros are NULL (described in 7.17);
    [...]
    EOF
    which expands to an integer constant expression, with type int and a negative value, that
    is returned by several functions to indicate end-of-file, that is, no more input from a
    stream;



  • es war aber so.
    das meinte ich:

    Cico schrieb:

    EOF ist in dem fall ein #define das -1 oder 0 sein kann...es markiert aber trotzdem das Ende eines strings.

    1. ist EOF nicht das ende eines strings. strings werden in c mit einer 0 begrenzt
    2. kann EOF nicht 0 sein denn dann könte man keine nullen in files schreiben

    edit: punkt 2 nehm' ich wieder zurück ;)[/quote]

    Zu punkt 2:

    #define EOF 0
    /*
    The problem is, that value
    is not the same for all computers.  On some computers you would define the
    constant like this:
    #define EOF -1
    On others you would define it like this:
    #define EOF 0
    */
    

    siehe dazu auch:
    http://www.glue.umd.edu/afs/glue.umd.edu/system/info/olh/Programming/C_Programming_on_Glue/The_Third_C_Program_Character_Data/eof_stdio



  • Cico schrieb:

    /*
    The problem is, that value
    is not the same for all computers. On some computers you would define the
    constant like this:
    #define EOF -1
    On others you would define it like this:
    #define EOF 0
    */

    das ist aber unsinn, auch wenn's im internet steht. warum?
    weil man dann mit fgetc() keine nullen aus einem stream lesen könnte.
    wie soll man in diesem fall eine 0 von EOF unterscheiden?



  • net schrieb:

    Cico schrieb:

    /*
    The problem is, that value
    is not the same for all computers. On some computers you would define the
    constant like this:
    #define EOF -1
    On others you would define it like this:
    #define EOF 0
    */

    das ist aber unsinn, auch wenn's im internet steht. warum?
    weil man dann mit fgetc() keine nullen aus einem stream lesen könnte.
    wie soll man in diesem fall eine 0 von EOF unterscheiden?

    lol idiot



  • Wir reden hier von dem Statusbit bei der Fehlerbehandlung das gesetzt wird bei einem Stream.(Rückgabewert)bool EOF() ist soviel ich weiß immer das letzte Zeichen.Es kann bei -1 True sein oder wenn es auf 0 oder NULL ist...ist abhängig von deiner Streamstatus abfrage...



  • Was ist eigentlich mit euch los? Da poste ich schon ein Zitat aus dem C99 Standard und ihr diskutiert immer noch den Blödsinn weiter. Da steht doch wohl eindeutig, dass EOF zu einem negativen int Wert evaluiert. Und 0 ist wie ihr sicher wissen solltet kein negativer int Wert 😡



  • kingruedi schrieb:

    Und 0 ist wie ihr sicher wissen solltet kein negativer int Wert 😡

    Im 1er Komplement gibts für die 0 eine negative Darstellung 🤡 😉



  • interpreter schrieb:

    kingruedi schrieb:

    Und 0 ist wie ihr sicher wissen solltet kein negativer int Wert 😡

    Im 1er Komplement gibts für die 0 eine negative Darstellung

    (((-0)<0)==0)



  • Daniel E. schrieb:

    interpreter schrieb:

    kingruedi schrieb:

    Und 0 ist wie ihr sicher wissen solltet kein negativer int Wert 😡

    Im 1er Komplement gibts für die 0 eine negative Darstellung

    (((-0)<0)==0)

    true



  • interpreter schrieb:

    kingruedi schrieb:

    Und 0 ist wie ihr sicher wissen solltet kein negativer int Wert 😡

    Im 1er Komplement gibts für die 0 eine negative Darstellung

    wie sieht die aus? 0^1? da werden doch nur alle bits invertiert.
    hat doch mit + oder - nichts zu tun...



  • net schrieb:

    interpreter schrieb:

    Im 1er Komplement gibts für die 0 eine negative Darstellung

    wie sieht die aus? 0^1? da werden doch nur alle bits invertiert.
    hat doch mit + oder - nichts zu tun...

    Doch, doch. Per Definition kommt man zu der negativen Darstellung einer Zahl, indem man alle Bits invertiert. Ist die 0 also sinngebenderweise 000...0 (n mal), dann ist das Komplement 111...1 (auch n mal), was dann eben -0 ist. Das hat natürlich nichts damit zu tun, daß "-0 == 0" auf jeder Implementierung der Sprache C 1 zu ergeben hat. Wenn Du Sauereien mit den einzelnen Bits machst, dann aber nicht.



  • Daniel E. schrieb:

    Per Definition kommt man zu der negativen Darstellung einer Zahl, indem man alle Bits invertiert.

    Anmerkung: Im 1er Komplement.


Anmelden zum Antworten