Wie komme ich mit entertaste aus einer scleife?
-
Hallo liebe Ggemeinde,
Hab ein kleines problem, würde gerne ein Wort in array reintun und nach betätigen der Enter Taste das Wort ausgeben! Ich weis nicht wie mann das mit den Enter da macht?
Kann mir Bitte wer helfen?
Hab hier schon was zusammengewürfelt!
#include <iostream> using namespace std; const int MAX=256; int main() { int ch = cin.get(); char a[5]; int i; for( i=1; i<=5; i++){ if(ch==13)break; cin>> a[i]; } for( i=1; i<=5; i++){ cout << a[i] << endl; } system("PAUSE"); }Dank![code]
-
Dieser Thread wurde von Moderator/in KlausB aus dem Forum VCL (C++ Builder) in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
du kannst auch einfach das ganze wort direkt eingeben lassen
char wort[100]; cin >> wort; // oder so um die komplette zeile einzulesen cin.getline(wort, 100);
-
hast du beim schuhe binden die entertaste rein gebracht?
-
Oder du überprüufst einfach am Ende der Schleife ob die Entertaste gedrückt wurde...
#include <iostream> using namespace std; const int MAX=256; int main() { int ch = cin.get(); char a[5]; int i; for( i=1; i<=5; i++) { if(ch==13)break; if(GetAsyncKeyState(ENTER))//Wurde Entertaste gedürckt? { break;//wenn ja dann break } cin>> a[i]; } for( i=1; i<=5; i++) { cout << a[i] << endl; } system("PAUSE"); }Weiß nicht ob die Entertaste auch wirklich ENTER heißt...musst mal wen anders fragen oder googlen

Obs die optimale lösung ist, weiß ich auch nicht, denn man muss ja hier eigentlich nach cin zweimal Enter drücken...einmal um die Eingabe zu bestätigen und nochmal kurz darauf, dass du die Schleife verlässt! Also...
Bin ja selbst noch Anfänger
-
Finn schrieb:
Weiß nicht ob die Entertaste auch wirklich ENTER heißt...musst mal wen anders fragen oder googlen

Das wäre dann wohl
VK_RETURN...
-
hi gGgorgino!
#include <iostream> #include <conio.h> #define ENTER 13 #define harry arry using namespace std; int main() { char arry [512] = {0}; // wort reintun cout << "geben sie ein wort ein: " << endl; cin.getline ( arry, sizeof(arry) ); // wort raustun cout << "druecken sie enter, um das wort anzuzeigen!" << endl; if( getch() == ENTER ) cout << harry << endl; else cout << "Trollo! Das war nicht die Entertaste!" << endl; return 0; }
-
Danke!

-
Finn schrieb:
Weiß nicht ob die Entertaste auch wirklich ENTER heißt...musst mal wen anders fragen oder googlen

GetAsyncKeyStateist aber WinAPI und hat daher nichts mit ISO C++ zu tun. Und Googlen muss man da auch nichts, da man am besten in der MSDN suchen geht.
http://social.msdn.microsoft.com/search/en-us/?query=GetAsyncKeyState+functionZudem hat man mit
GetAsyncKeyStateauch keine Sicherheit, da ist man gleichweit, wie wenn man annimmt, dass bei einem leeren Eingabestream die neuen Eingaben vom User per <enter> bestätigt werden.
Bei deinem Code würde die Schleife wahrscheinlich gleich nach dem ersten Buchstaben sowieso abbrechen, ist also völlig der falsche Ansatz.#include <string> #include <iostream> void flushInputStream(std::istream& in) { in.clear(); in.ignore(in.rdbuf()->in_avail()); } int main() { flushInputStream(std::cin); // Alles ignorieren und Fehlerflags zurücksetzen. std::string line; std::getline(std::cin, line); // Eine Zeile einlesen. std::cout << line << std::endl; // Zeile ausgeben. // Oder: flushInputStream(std::cin); std::string word; std::cin >> word; // Wort lesen, kann auch mehr eingegeben werden, flushInputStream(std::cin); // der Rest wird hier aber ignoriert. std::cout << word << std::endl; // Wort ausgeben. }Grüssli