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

Gnom

Frischling

  • »Gnom« ist der Autor dieses Themas

Beiträge: 24

Wohnort: Walpersbach

Beruf: Schüler

  • Private Nachricht senden

1

08.08.2006, 19:03

Problem mit cin.get und cin.ignore

Wenn ich dieses Programm starte, und bei "Kuerzel" eine Eingabe mache, endet es, anstatt bei "Name" wieder auf eine Eingabe zu warten. Warum ist das so, ist cin.ignore () daran schuld?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <cstdlib>
#include <iostream>

using namespace std;

struct s_Struktur
{
       char c_Kuerzel[3];                
       char c_Name[21];          
};

int main(int argc, char *argv[])
{      
        s_Struktur s_New;                
        char c_choice;                    
             
        cout << "Kuerzel: ";
        cin.get (s_New.c_Kuerzel, 2);
     
        cin.ignore ();        
         
        cout << "Name: ";
        cin.get (s_New.c_Name, 20);
   
        return EXIT_SUCCESS;
}
Es gibt nichts schöneres, als dem Schweigen eines Dummkopfes zuzuhören!

Anonymous

unregistriert

2

08.08.2006, 19:12

Ersetz mal st::cin.ignore () durch std::cin.sync () dann klappt es.

Dazu eine kurze Anmerkung: Laut Standard ist EXIT_SUCCESS falsch und illegal. Ich schließe durch diese #define-Konstante darauf, dass Du DevC++ benutzt - da falscher Code hier gang und gäbe ist.

Benutz Express ;) Einsteigerfreundlich, 1a Debugger, Verständliche Fehlermeldungen und viel Komfortabler. DevC++ - was ist schon DevC++? :lol:

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

3

08.08.2006, 20:57

-nichts...

Phili

unregistriert

4

08.08.2006, 20:59

@nix da
Ich find für die ersten 2-3 Monate C++ ist er (zumindest fast ;) ) besser als Visual C++, einfach wegen der Installation(zumindest wenn man dein Tutorial nicht gelesen hat).

Anonymous

unregistriert

5

08.08.2006, 21:46

Ne ganz ehrlich, Dev-C++ hab ich auch nie gemocht, bin mit VC++ 6
eingestiegen und dank nix da auf VC++ 2005 Express umgestiegen ;)

Gnom

Frischling

  • »Gnom« ist der Autor dieses Themas

Beiträge: 24

Wohnort: Walpersbach

Beruf: Schüler

  • Private Nachricht senden

6

09.08.2006, 09:08

Danke für die schnelle Hilfe, wenn ich cin.sync () benutze funktioniert es einwandfrei, nur könnt ihr mir auch erklären warum?
Es gibt nichts schöneres, als dem Schweigen eines Dummkopfes zuzuhören!

Anonymous

unregistriert

7

09.08.2006, 14:37

Das eine ignoriert nur die letzten Eingaben, das andere leert und resynchronisiert den Eingabepuffer.

Werbeanzeige