Pufferspeicher ? ? ? ?
-
[Vermutung]
Kommt mir grad so bekannt vor.
Wann lernen Lehrer endlich in ihren Aufgaben keine Vorgaben zu machen die man nicht sinnvoll mit Standardmitteln umsetzen kann? *grumpf*
[/Vermutung]@junkerjoerg
Geht leider nicht. Nicht mit C Standardmitteln. Wenn du eine Lösung suchst die unter Linux funktioniert kannst du mal hier gucken:http://stackoverflow.com/questions/3317740/checking-data-availability-before-calling-stdgetline
(Die Variante mitpoll
undSTDIN_FILENO
).Wobei es mich nicht wundern würde wenn selbst diese nicht portierbare Lösung noch problematisch wäre.
Für Windows kann man ähnliches mit
WaitForSingleObject
machen. Nur dummerweise funktioniert das dann nicht mehr sobald der Input-Stream z.B. in ein File umgeleitet wurde.
-
-
Ja, danke, hab den Thread nicht mehr gefunden.
Ist aber eben wie erwähnt nicht unproblematisch.ps: Dürfen stdin/stdout eigentlich gepuffert sein? Dann gäbe es nämlich gleich das nächste Problem...
-
"Pufferspeicher" - reduntant?!
-
Wenn der Input-Stream aus einem File kommt, macht das Vorgehen ja nicht wirklich Sinn. Es ist doch meiner Meinung nach konkret auf das manuelle Arbeiten an einer Konsole zugeschnitten?!
-
hustbaer schrieb:
[Vermutung]
Kommt mir grad so bekannt vor.
Wann lernen Lehrer endlich in ihren Aufgaben keine Vorgaben zu machen die man nicht sinnvoll mit Standardmitteln umsetzen kann? *grumpf*
[/Vermutung]@junkerjoerg
Geht leider nicht. Nicht mit C Standardmitteln. Wenn du eine Lösung suchst die unter Linux funktioniert kannst du mal hier gucken:http://stackoverflow.com/questions/3317740/checking-data-availability-before-calling-stdgetline
(Die Variante mitpoll
undSTDIN_FILENO
).Wobei es mich nicht wundern würde wenn selbst diese nicht portierbare Lösung noch problematisch wäre.
Für Windows kann man ähnliches mit
WaitForSingleObject
machen. Nur dummerweise funktioniert das dann nicht mehr sobald der Input-Stream z.B. in ein File umgeleitet wurde.Poste doch mal was funktioniert. Und labere nicht solches halbwissen raus...
-
grumpf schrieb:
Poste doch mal was funktioniert. Und labere nicht solches halbwissen raus...
Du bist lustig. Er hat doch gerade gesagt, dass es nicht geht, die (vermutlichen) Vorgaben aus der Aufgabe umzusetzen, weswegen die Aufgabe dumm gestellt ist (sofern sie wie vermutet lautet).
-
Wie kommt dieser Thread auf > 6.000 Klicks?
-
Ist scheinbar ne große Klasse...
-
ich mach dir mal nen non-standard ansatz kumpel
ist als anregung gedacht
guckst du hier:#include <conio.h> #include <stdio.h> #include <time.h> int eingabe_erfolgt = 0; double zeit_fuer_eingabe = 60; // 60 Sekunden Zeit für Eingabe vom us0r time_t start_t, end_t; time(&start_t); do { if(eingabe_erfolgt = _kbhit()) break; time(&end_t); }while(zeit_fuer_eingabe < difftime(end_t, start_t)) if(eingabe_erfolgt) { // a-haaaaaahh, es wurde was eingegeben }
die verstrichene zeit kannsu mit difftime ermitteln
http://www.tutorialspoint.com/c_standard_library/c_function_difftime.htm
hier noch ein paar infos zu kbhit
https://msdn.microsoft.com/de-de/library/58w7c94c.aspx