Virtueller Tastendruck - direkt String zum Schreiben vorgeben



  • Abend,
    also ich hab folgendes Problem:
    Ich hab ein Programm, in das man einen Text schreiben soll und dann wird das Programm diesen Text per virtuellen Tastendruck wieder ausgeben.
    Ich kann es selbstverständlich, wenn ich diese Zahlen eingebe, aber ich will einfach den Text (ohne blanks)in einen String eingeben und der wandelt mir die dann um.
    Hier mein bisheriger Quelltext, wenn ich mich undeutlich ausgedrückt hab bzw zur Verbesserung ...

    #include <cstdlib>
    #include <iostream>
    #include <string>
    #include <windows.h>
    #include <conio.h> 
    
    using namespace std;
    int Pause = 200; //Pause zwichen den virtuellen Tastendrücken
    
    void v_Buchstabe(int Taste)
    {
        if(Taste <= 90 && Taste >= 65) //nur "a" - "z"
        { 
        keybd_event(Taste,0,0,0);
        keybd_event(Taste,0,KEYEVENTF_KEYUP,0);
        Sleep(Pause);
        }              
    }
    
    int main()
    {  int zeichenzahl = 5, loop, text[zeichenzahl];
    
       cout<<"Bitte geben Sie den String ein"<<endl;
    
       for(loop=0;loop<zeichenzahl;loop++) //Eingabe
       {
       cin>>text[loop];   
       /*Im Moment muss man noch zB 82 für "r" eingeben oder 79 für "o" usw
       Hier soll man später einfach einen STRING eingeben, und der wird autom.
       in diese Zahlen umgewandelt. Damit das ganz simpel sein soll, gibt es hier
       erstmal NUR Kleinbuchstaben */
    
       }
       cout<<"Eingabe erfolgt. - Pause."<<endl;
       Sleep(5000); //Zwichenpause
    
       for(loop=0;loop<zeichenzahl;loop++) 
       {
    
       v_Buchstabe(text[loop]);
       }
        cout<<"Done. "<<endl; getch();
        return 0;
    }
    

    Ich denke man ließt Stringname[0...n] aus und wandelt das dann (falls es ein Kleinbuchstabe a-z ist in den entsprechenden Wert um. Ich kenne den Befehl aber net (gibts bestimmt 😃 ). Ich hab keine Lust das ganze Alphabet + dazugehöriger Zahl abzuschreiben^^
    Hoffe auf rasche Hilfe :p



  • So gibt man keine Strings ein. Das geht so:

    cin.getline(text, zeichenzahl);
    

    Da brauchst du auch keine for-Schleife und sonst nichts.

    MfG SideWinder


Anmelden zum Antworten