Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Anfänger hat Konsolenanwendungs-Frage

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 <
000
20.10.2005, 10:38 Uhr
~m4ko
Gast


Hallo,

Ich habe ein kleines Problem in meiner C++-Konsolenanwendung. Ich habe schon vieles probiert aber es funzt nix. Ich habe das Programm vereinfacht um das Problem einzuschränken.

Problem:
Ich will ein Programm per Schleife wiederholen. Der User muss dafür "int a" auf 1 setzen.


C++:
#include <iostream.h>
void main(void)
{
    int a=0;
    char d[20];
    
    do{
        cout<<"d: ";
        cin.getline(d,20); //Beim ersten ausführen kann man d hier eingeben, danach wird die Eingabe übersprungen.
        
        cout<<"\na: ";        
        cin>>a;  //Diese Eingabe funzt bei jedem Durchgang der Schleife
    }while(a==1);
}



Die Ausgabe (Wenn man bei "int a" immer 1 eingibt):

Code:
d: daddadad
a: 1
d:
a: 1
d:
a: 1
d:
a: 1
........



Danke für jeden Tip !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.10.2005, 10:54 Uhr
virtual
Sexiest Bit alive
(Operator)


Wenn Du die 1 eingibst, gibst Du in Wirklichkeit ja Zweizeichen ein: Nämlich die 1 und danach ein ENTER.
Das ENTER verweilt im Stream, wird somit nicht von "cin>>a" gelesen. Das getline sieht da ENTER im Stream und denkt es ist fertig. Daher wird es immer wieder übersprungen. Mach mal hinter dem "cin>>a" ein "cin.ignore();" und berichte von Deinen Erfahrungen.
--
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
002
20.10.2005, 11:33 Uhr
~m4ko
Gast


Danke das funktioniert. Ich wußte dies auch (mit der übergebenen Eingabe) aber ich hatte danach gegoogelt und ich bekam immer nur cin.sync(); cin.clear(); - und die haben mein Problem nicht gelösst.

Ich werde mir cin. wohl nochmal genauer anschauen müssen.

Vielen Dank.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: