Warum Tastaureingabe als Stream?



  • Haben die sich eigentlich irgendwas gedacht, als die das gemacht haben? Warum soll man den bei ner Eingabe immer warten, bis einer Enter gedrückt hat? Damit könnte man ja noch nicht mal nen einfachen Editor programmieren. Hat das irgend nen Vorteil Tastatureingabe als Stream zu behandeln?



  • Hallo

    Was hat das Stream-Prinzip mit Enter drücken zu tun? 😕

    bis bald
    akari



  • Hab mich auch schon gefragt, ob das bei nem Stream wirklich so sein muss, dass man immer auf Enter drücken muss. Aber wieso muss man immer auf Enter drücken?



  • Hallo

    Kannst ja scanf benutzen wenn du keine Eingabestreams willst. Enter must trotzdem drücken... 🙄
    Damit sollte wohl klar sein das das Enter nicht wegen einer Stream-Eigenart ist (bei fstream must du ja auch nicht nach jeder Einleseoperation Enter drücken), sondern weil die Eingabeart (unabhängig von Stream oder nicht) so implenentiert ist. Du kannst dir auch selber einen Stream auf Basis von Betriebssystemfunktionen schreiben der nicht auf Enter wartet.

    bis bald
    akari



  • Was du als Tastatur siehst ist aus Programmsicht ja nicht die Tastatur sondern nur die Standard-Eingabe stdin. Das die von der Tastatur kommen kann ist Sache des Betriebssystems.



  • stdin ist in C++ komplett "broken", damit muss man sich abfinden.



  • hustbaer schrieb:

    stdin ist in C++ komplett "broken", damit muss man sich abfinden.

    Soll "broken" jetzt kaputt (müll) heißen oder hat das was mit Zeilenumbruch zu tun?



  • akari schrieb:

    Kannst ja scanf benutzen wenn du keine Eingabestreams willst. Enter must trotzdem drücken... 🙄

    scanf basiert auf Streams. Nicht iostreams natürlich, aber in C heißen die auch so.

    Der Grund dafür liegt letztendlich darin, dass C aus einer Zeit stammt, in der Bildschirmterminals noch nicht allgemein üblich waren, sondern Fernschreiber. Man hat also dem OS überlassen, die Zeile einzulesen, und sich einfach ins gemachte Bett gelegt. War auch praktischer im Hinsicht auf die Vereinbarkeit von Tastatur und Dateieingabe. Der erste Bildschirmeditor, vi, ist auch ein paar Jahre jünger als C.



  • hmmm??? schrieb:

    hustbaer schrieb:

    stdin ist in C++ komplett "broken", damit muss man sich abfinden.

    Soll "broken" jetzt kaputt (müll) heißen oder hat das was mit Zeilenumbruch zu tun?

    Ersteres.



  • ohne erklärung sind deine beiträge nutzlos


Anmelden zum Antworten