getch() und in string einfügen nur wie ?
-
hi schon wieder ne lamer frage... find die antwort aber nicht wirklich *g*
using namespace std; int main() { int merke=0; string str1=""; merke=getch(); str1.insert(0,merke); // funktioniert nicht [invalid convert from int to // const char] hehe war mir vorher schon klar..... str1.insert(0,"q"); // würde ein Q einfügen.... str1.insert(0,"113"); // würde 113 (den rückgabewert von getch() bei // tastendruck von q system("pause"); }
so... jezt meine frage...: Wie kann ich es erreichen das beim tastendruck irgendeiner taste das entsprechende zeichen in einen string eingefügt wird ?
irgendwie muss ich doch warscheinlich int in char convertieren oder so oder ?
irgendwer erzähle mir mal sowas mit hex codes die dann umgewandelt wurden...
irgendwer wieder ne nette idee für mich ?
-
insert() kann nur char's (einzelne Zeichen) oder Strings (Zeichenketten) verarbeiten. getch() liefert aber einen int-Wert (der entweder ein Zeichen oder EOF sein kann), also mußt du den Wert passend konvertieren:
int wert=getch(); str.insert(0,(char)wert);
-
int wert=getch(); str.insert(0,(char)wert);
also wenn ich stur so eingebe hab ich genau das selbe warning....
also wie könnte ich das machen ohne 1000 werte vorzudefinieren ?(einfach den wert konvertieren ?nur wie ?)int wert=getch(); str.insert(0,convertierter wert von wert);// Nur wie ?
wirklich keine ahnung....
Mfg Baltur
-
Sorry, Kommando zurück - string hat ja gar kein insert() für einzelne Zeichen, aber dafür für n gleiche Zeichen. Und den müsstest du hier verwenden:
str.insert(0/*Position*/,1/*Anzahl*/,wert);
-
genau das wollte ich Herzlichen Dank !!!!
MfG Baltur
-
Es gibt schon ein insert für ein einzelnes Zeichen. Die Iteratorversion von insert.
str.insert(str.begin()/*Position*/,wert);