Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

17.05.2006, 19:13

Hi

Wie macht man es denn nun Grundsätzlich das eine neue Textzeile erst nach drücken der "Enter"-Taste ausgegeben wird bzw. vieleicht habt ihr das auch schon erwähnt mit sync.cin.get oder wie auch immer, dann gebt mir bitte ein Beispiel, da ich da noch recht ein noob bin und somit auch noch nicht in der lage bin schlüsselwörter einfach so in meine Quelltexte zu integrieren?
Und wozu wird das std::endl benötigt?
Ist in meinen Augen total überflüssig da es ja auch ohne diesen Befehl läuft.

MfG Sämi

Anonymous

unregistriert

12

17.05.2006, 19:20

Wenn ich eines hasse, dann sind es Leute die den Streambuffer mit langsamen und nicht ordentlich standardisierten Escapesequenzen vollbomben, da sie std::endl für absolut überflüssig halten! Sorry, aber da krieg ich anfälle.

Wenn man es aus der Sicht von einer Hochsprache sieht: Was ist eine Neue Textzeile? was ist ein Monitor? Was ist eine Tastatur? C++ kennt nichts der gleichen, dafür benötigst Du wenn schon API Funktionen.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

13

17.05.2006, 19:35

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
#include <iostream>

int main()
{
    int a;
    std::cin >> a;
    std::cout << "a" << std::endl;

    std::cin.sync();
    std::cin.get();
}

Anonymous

unregistriert

14

17.05.2006, 19:45

koschka
std::cin.ignore (); != std::cin.sync ();

ext

Treue Seele

  • Private Nachricht senden

15

17.05.2006, 20:08

std::cin.ignore() ist schonmal richtig, nur gehst du davon aus, dass nur noch ein Zeichen drin ist, nämlich \n
Aber wenn man "123abc" eingibt, steht da noch abc\n drin.

deshalb muss man das so schreiben:
std::cin.ignore( std::numeric_limits< std::streamsize >::max(), '\n');
damit werden alle Zeichen im streambuffer gelöscht, oder bis ein \n auftaucht

Ne nette Seite ist diese.


Wenn man nur ne neue Zeile will ist \n der richtige Weg, nicht std::endl
cout wird eh geflusht bevor cin vom eingabepuffer liest

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

16

17.05.2006, 21:59

hmmmnnn stimmt.... ihr habt Recht.... :huhu:

Werbeanzeige