ncoder
Messages postés244Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention 6 avril 2008
-
22 juin 2005 à 15:52
ncoder
Messages postés244Date d'inscriptionvendredi 6 mai 2005StatutMembreDernière intervention 6 avril 2008
-
23 juin 2005 à 15:12
Bonjour à toi lecteur,
Peux-tu m'expliquer ce problème là s'il te plait ?
Regarde, j'ai fait ce petit programme :
int main()
{
char rep[50];
printf("Texte : ");
gets(rep);
Tape(rep);
return 0;
}
<HR>
void Tape (const char txt[30000])
{
Sleep(2000);
int x;
char lettre[3];
int i;
for (i=0; i<strlen(txt)+1; i++) {
strncpy(lettre, &txt[i], 1);
if (lettre[0]=='\n') x=10;
if (lettre[0]==' ') x=20;
if (lettre[0]=='0') x=30;
if (lettre[0]=='1') x=31;
if (lettre[0]=='2') x=32;
if (lettre[0]=='3') x=33;
if (lettre[0]=='4') x=34;
if (lettre[0]=='5') x=35;
if (lettre[0]=='6') x=36;
if (lettre[0]=='7') x=37;
if (lettre[0]=='8') x=38;
if (lettre[0]=='9') x=39;
if (lettre[0]=='a') x=65;
if (lettre[0]=='b') x=66;
if (lettre[0]=='c') x=67;
if (lettre[0]=='d') x=68;
if (lettre[0]=='e') x=69;
if (lettre[0]=='f') x=70;
if (lettre[0]=='g') x=71;
if (lettre[0]=='h') x=72;
if (lettre[0]=='i') x=73;
if (lettre[0]=='j') x=74;
if (lettre[0]=='k') x=75;
if (lettre[0]=='l') x=76;
if (lettre[0]=='m') x=77;
if (lettre[0]=='n') x=78;
if (lettre[0]=='o') x=79;
if (lettre[0]=='p') x=80;
if (lettre[0]=='q') x=81;
if (lettre[0]=='r') x=82;
if (lettre[0]=='s') x=83;
if (lettre[0]=='t') x=84;
if (lettre[0]=='u') x=85;
if (lettre[0]=='v') x=86;
if (lettre[0]=='w') x=87;
if (lettre[0]=='x') x=88;
if (lettre[0]=='y') x=89;
if (lettre[0]=='z') x=90;
if (lettre[0]=='*') x=107;
if (lettre[0]=='+') x=108;
if (lettre[0]=='-') x=109;
if (lettre[0]=='.') x=110;
if (lettre[0]=='/') x=111;
keybd_event(x,0,0,0);
keybd_event(x,0,KEYEVENTF_KEYUP,0);
}
}
Tu as pu deviner que c'était pour simuler au clavier le texte envoyé à Tape().
Or, si je fais ceci : Tape("Bonjour");
Il simule "Bonjourr"...
Si je fais "Ciao"...
Tape() me simule toujours la dernière lettre 2 fois !
ricky78
Messages postés126Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention11 juillet 2006 22 juin 2005 à 16:49
Bonjour
Enleve le +1 dans ta boucle for
Qd tu tape "bonjour" ( 7 caracteres) ton for va de 0 à 7+1 donc 8, or comme il commence à compter à partir de 0 tu as 8 caractéres recopier au lieu de 7.
Tu connais surement en math les problemes de piquets et d'intervalle entre les piquets, c'est pareil