Kann mir jemand den Quellentext erklären ?
-
also,
Sleep ist eine blockierende WINAPI Funktion zum warten. Hättest du googlen können.
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);Das simuliert einen Key-Release der Shift-taste. Zeile 35 ist IMO völlig schwachsinnig. Und in Zeile 42 wird der ASCII-Code eines übergebenen
char's geprüft, ob er größer 64 und kleiner 95 ist. Den kannst du googlen.1. Sieht ein kleines bissel nach schlechtem Code aus, denn z.B.
if(letter>0x40 && letter<0x5B) // <- ?????????? return true; return false;ist
return letter >= 'A' && letter <= 'Z';2. Ist WINAPI und nicht C++ (oder reines Standard-C++)
3. Und das hättest du googlen können.Edit: Zeile 30 bis 33
ist blöd!! Da kann man doch einfach eineinitializer_listmit den Buchstaben füllen und eine<algorithm>-funktion benutzen um auf Gleichheit zu prüfen, z.B.remove_ifmit einem Lambda und dann Größe > 0 prüfen.
-
Hacker schrieb:
Edit: Zeile 30 bis 33
ist blöd!! Da kann man doch einfach eineinitializer_listmit den Buchstaben füllen und eine<algorithm>-funktion benutzen um auf Gleichheit zu prüfen, z.B.remove_ifmit einem Lambda und dann Größe > 0 prüfen.Dein Vorschlag ist blöd!
Da kann man doch einfachreturn strchr("!\"§$%&/()=?>;:_*°'", c)schreiben.Zeile 35 ist wirklich witzig, der Autor muss wohl einen Weg gesucht haben, ' als Character zu schreiben. std::string("'")[0] geht zwar, "'"'[0] geht aber genauso und '\'' geht noch besser. Dieser Fall ist oben in meinem return-Ausdruck schon verarbeitet.
-
Hacker schrieb:
Edit: Zeile 30 bis 33
ist blöd!! Da kann man doch einfach eineinitializer_listmit den Buchstaben füllen und eine<algorithm>-funktion benutzen um auf Gleichheit zu prüfen, z.B.remove_ifmit einem Lambda und dann Größe > 0 prüfen.so einfach kann das gehen. oder man nimmt den umständlichen weg: standard-funktionen um zu gucken, ob es eine zahl oder eine nummer ist... klingt jetzt eigentlich gar nicht mehr so umständlich - erst recht nicht mehr, wenn man std::isalnum aus <locale> nimmt.
bb
-
OMG, ich hab jetzt erst verstanden wofür diese Funktion da ist. Es ist einfach unglaublich, dass er nicht unskilled's Funktion genommen hat! Meine Güte, in diesem Fall ist Nicht-Prüfen völlig bescheuert. Ich dachte, er will einfach (aus einem unersichtlichen Grund) Den Buchstaben auf Gleichheit mit einem dieser Zeichen prüfen.
-
Hacker schrieb:
Edit: Zeile 30 bis 33
ist blöd!! Da kann man doch einfach eineinitializer_listmit den Buchstaben füllen und eine<algorithm>-funktion benutzen um auf Gleichheit zu prüfen, z.B.remove_ifmit einem Lambda und dann Größe > 0 prüfen.Und vergiss nicht noch ein paar lexical_cast einzubauen. Bzw. vielleicht könntest du es vorher noch in ein File schreiben und wieder zurücklesen.

-
hustbaer schrieb:
Hacker schrieb:
Edit: Zeile 30 bis 33
ist blöd!! Da kann man doch einfach eineinitializer_listmit den Buchstaben füllen und eine<algorithm>-funktion benutzen um auf Gleichheit zu prüfen, z.B.remove_ifmit einem Lambda und dann Größe > 0 prüfen.Und vergiss nicht noch ein paar lexical_cast einzubauen. Bzw. vielleicht könntest du es vorher noch in ein File schreiben und wieder zurücklesen.

Das Mindeste. Wo ist volkard? Ich brauche volkard! Der hätte jetzt Bock auf sowas. Wo ist der räudige alte volkard hin? Der war geil.
Edit: Ich bin sicher, ich muss beim Datei- Lesen und Schreiben chiffrieren, damit die Teile nicht abgefangen, und spezifisch verfälscht schnell zurück-überschrieben werden können.
Edit²: Oder PI! Der macht doch immer sowas, oder?
-
usernetz schrieb:
if(msg[i]==msg[i-1]) Sleep(100); //Warum hier Sleep ???Eventuell werden die beiden Tastendrücke sonst nicht separat, sondern als ein einzelner Tastendruck aufgefasst.
-
else if(no_letter_or_number(buffer) || capital_letter(buffer))
Logischer Unsinn.
-
Ethon schrieb:
else if(no_letter_or_number(buffer) || capital_letter(buffer))
Logischer Unsinn.
Nein, perfekt logisch.
Denk dir statt "no_letter_or_number" einfach "special".
if (special || capital_letter)
Was ist da jetzt logisch unsinnig?
-
Hacker schrieb:
Edit²: Oder PI! Der macht doch immer sowas, oder?
Ich frickle nur Sprachfeatures mit Makros nach -> falsche Baustelle