Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem bei if und gets(array)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
25.12.2003, 23:31 Uhr
virtual
Sexiest Bit alive
(Operator)


@Guy
- Wo bitte hat beefy stdin geflusht?
- Du hast deshalb keine Probleme, weil Du wahrscheinlich den VC benutzt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
26.12.2003, 12:26 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat:
virtual postete
@Guy
- Wo bitte hat beefy stdin geflusht?


Oh, da hab ich wohl auf Gtrund des Posts von pali was durcheinander geworfen. Sorry.

Zitat:
virtual postete
- Du hast deshalb keine Probleme, weil Du wahrscheinlich den VC benutzt.


Ähm..ja
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
26.12.2003, 23:42 Uhr
0xdeadbeef
Gott
(Operator)


Es macht generell keinen Sinn, Input-Streams zu flushen, weil durch input-streams nichts ausgegeben wird, was geflusht werden könnte.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
27.12.2003, 00:02 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Naja ich kann mich erinnern das ich, früher in der Schule, öfters Fälle hatte wo bei 2 Eingaben, die 2te einfach übersprungen wurde. Ein fflush(stdin) zwischen beiden Eingaben hatte das Problem immer gelöst. Hab erst später Erfahren das das purer Zufall war.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
27.12.2003, 09:45 Uhr
virtual
Sexiest Bit alive
(Operator)


Unter Windows wird fflush(stdin) ganz gerne verwendet, um noch von vorherigen Eingaben vorhandene Zeichen zu löschen. In diesem Sinne funktioniert es auch dort, allerdings ist diese Funktionalität nicht standardisiert.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
27.12.2003, 20:43 Uhr
~pali
Gast


@0xdeadbeef: nicht theoretisieren sondern programmieren ! lubU hat das Problem mit der EINGABE, jedoch NICHT mit der Ausgabe.

scanf () liest eine Zahl und lässt das Return ('\r') im Eingabe-Puffer, gets () liest den leeren String bis zum Return und ist fertig - alles klar.

Hinweis: scanf () und gets() mischen ist eben unpraktisch, besser wäre es bei einer Form der Eingabe zu bleiben. fgets() ist eine GUTE Idee, denn durch Strings, die länger als der reservierte Speicherplatz sind, entstehen häufig Probleme.

Da scanf () und gets () zu Standard C gehören, sollte das Verhalten auf allen Systemen gleich sein ! [in Win geht's antürlich anders, da benötigt man die beiden Funktionen aber auch nicht]

Hoffentlich hat lubU ERfolg ;-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
27.12.2003, 20:52 Uhr
0xdeadbeef
Gott
(Operator)


1. Es macht trotz allem keinen Sinn, Input-Streams zu flushen.
2. newline == '\n'
3. gets liest eine Zeile ein, scanf("%s", ...) nur ein Wort (also bis zum nächsten Whitespace). Beide sind wg. Buffer Overflow-Gefahr gefährlich. Sie zu mischen bringt aber keine zusätzlichen Probleme.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: