Fehler bei Stringkorrektur
lima-city → Forum → Programmiersprachen → C/C++ und D
-
Hallo erstmal!
Ich weiß, ein merkwürdiger Titel, abe rich weiß eifnach nicht wie ich es anderes ausdrücken soll. Ich bin am verzweifeln. Google ergab auch nichts.
Mein problem: Ich schreibe gerade eine klasse, die Usereingaben verwertet. momentan sitze ich an einem Userinput. Die grundstruktur steht.. udn funktionieren tut sie auch so halbwegs, allerdings habe ich ein Problem: Drücke ich die backspace Taste, wird der Strng eifnach nicht überschreiben, sondern einfach nur der Zeiger innerhalb des Strings um eine Stelle nach hitnen versetzt. Das .. nervt. Und es ist eifnach blöde. Ich fände es nett, wenn ihr mir helfen könntet. Hier der Code:
string input::userinput(int passchar = 0) { cout<<"Bitte geben sie hier iher gewuenschten Werte ein:"<<endl; int currentkeyvalue; string currentstring; int end = 0; while(end != 1) { //Solange end != 1 ;D if(kbhit()) //Wird eine Taste gedrückt? { currentkeyvalue = getch(); //Aktuellen Keywert in currentkeyvalue schreiben if(currentkeyvalue == 13) { //Return end = 1; } else if(currentkeyvalue == 8) //Backspace { currentstring = currentstring.substr(0, currentstring.length()-1); } else { currentstring += currentkeyvalue; } currentkeyvalue = 0; cout<<"\r"<<(string) currentstring<<"\r"; } } return (string) currentstring; }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das sollte doch eigentlich mit erase() klappen...
http://www.cppreference.com/cppstring/erase.html -
Ich werde es ausprobiren.. sieht vielversprechend aus. Danke mein Freund. =)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage