Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » C++ Konsolenprogramm anhalten?

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
01.03.2004, 17:23 Uhr
~Imp
Gast


Hallo
Ich bin ein totaler C++ anfänger.
Ich bin momentan dabei ein kleines Quiz auf Konsolenbasis zu schreiben.
Nach der letzten frage geht die konsole leider direkt wieder zu da Windows den cout befehl so schnell ausgibt und das programm beendet das es kein mensch lesen kann.

Nun meine frage: Gibt es einen Befehl der das Programm nach der letzten ausgabe anhält damit der benutzer noch lesen kann ob seine antwort richtig oder falsch war?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.03.2004, 19:16 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Probier mal

C++:
#include <stdio.h>
/* … übersetzt unter Linux/UNIX? */
#ifdef __unix__
#include <termios.h>
#include <unistd.h>

static struct termios new_io;
static struct termios old_io;

/* Funktion schaltet das Terminal in den cbreak-Modus: */
/* Kontrollflag ECHO und ICANON auf 0 setzen        */
/* Steuerzeichen: Leseoperation liefert 1 Byte VMIN=1 VTIME=1 */
int cbreak(int fd)
{
   /*Sichern unseres Terminals*/
   if((tcgetattr(fd, &old_io)) == -1)
      return -1;
   new_io = old_io;
   /*Wir verändern jetzt die Flags für den cbreak-Modus*/
   new_io.c_lflag = new_io.c_lflag & ~(ECHO|ICANON);
   new_io.c_cc[VMIN] = 1;
   new_io.c_cc[VTIME]= 0;

/*Jetzt setzen wir den cbreak-Modus*/
   if((tcsetattr(fd, TCSAFLUSH, &new_io)) == -1)
      return -1;
   return 1;
}

int getch()
{
   int c;
   if(cbreak(STDIN_FILENO) == -1)
      {
         printf("Fehler bei der Funktion cbreak......\n");
         exit(0);
      }
   c = getchar();
   /*Alten Terminal-Modus wiederherstellen*/
   tcsetattr(STDIN_FILENO, TCSANOW, &old_io);
   return c;
}
/* … oder wird das Programm unter MS-Windows übersetzt? */
#elif __WIN32__ || _MSC_VER || __MS_DOS__
  #include <conio.h>
#endif

int main()
{
  int zeichen;
  printf("Bitte 'q' drücken, um das Programm zu beenden!\n");
   /* Wartet auf das Zeichen q */
  while(( zeichen=getch() ) != 'q');
  return 0;
}


Quelle: pronix.de

mfg
PS: Ich verschieb dich mal ins C++ Forum, da deine Frage nich MFC spezifisch ist
--

Dieser Post wurde am 01.03.2004 um 19:18 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.03.2004, 19:22 Uhr
RedEagle



Ich glaube gemeint war:

C++:
#include <iostream>
using namespace std;

int main()
{
cout << "Test";

getch(); //wartet auf Tastendruck (das was du suchst) ;)
return 0;
}


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.03.2004, 20:09 Uhr
~Imp
Gast



Zitat:
RedEagle postete
Ich glaube gemeint war:

C++:
#include <iostream>
using namespace std;

int main()
{
cout << "Test";

getch(); //wartet auf Tastendruck (das was du suchst) ;)
return 0;
}





Das gibt bei mir nen error "test.cpp(9) : error C2065: 'getch' : undeclared identifier" muss ich da noch was einbinden? Wenn ja was?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.03.2004, 20:12 Uhr
~Imp
Gast


Hat sich erledigt habs gefunden.

Danke für die nette hilfe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: