Konvertierung C++ nach C

30/07/2010 - 17:33 von Robert Hartmann | Report spam
Hallo zusammen,

als Ersatz für

system("pause"); /*pause von Windows*/

hatte ich für C++ mir Folgendes überlegt gehabt:

void pause(bool message) {
// Weiter mit Return
if (message)
std::cout << "PAUSE: Weiter mit Return..." << std::endl;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '');
std::cin.clear();
}


Unter C habe ich das Folgende hinbekommen,
aber es scheint nicht ganz das Selbe wie der
C++ Code zu leisten.

void pause(bool message){

if (message){
printf("PAUSE: Weiter mit Return...");
while ( getchar() != ''){} ;
}


Was aber, wenn ich nicht auf ein Return, sondern auf
irgendeine Eingabe warten will?

Muss ich dann zwangsweise den C-Standard verlassen
und mich auf System-API oder Bibliotheken zurückziehen,
welche die Systemspezifika übernehmen?


Gruß Robert
 

Lesen sie die antworten

#1 Stefan Reuther
30/07/2010 - 19:00 | Warnen spam
Robert Hartmann wrote:
void pause(bool message){

if (message){
printf("PAUSE: Weiter mit Return...");
while ( getchar() != ''){} ;
}



Besser:
int n;
while ((n = getchar()) != '' && n != EOF)
;

Was aber, wenn ich nicht auf ein Return, sondern auf
irgendeine Eingabe warten will?

Muss ich dann zwangsweise den C-Standard verlassen
und mich auf System-API oder Bibliotheken zurückziehen,
welche die Systemspezifika übernehmen?



Falls du mit "irgendeine Eingabe" einen "Tastendruck" meinst: das geht
nur mit System-APIs. Steht übrigens in der FAQ:
<http://www.dclc-faq.de/kap16.htm>


Stefan

Ähnliche fragen