#1 Le 06/07/2006, à 23:26
- vinc1001888
[Resolu] Simuler une saisie clavier [C/C++]
Salut tlm, je voudrais savoir si il existe un moyen de simuler une saisie clavier en C/C++ merci ;-)
#2 Le 07/07/2006, à 10:01
- gene69
Re : [Resolu] Simuler une saisie clavier [C/C++]
oui
il y a un moyen.
( booouuu je suis constructif aujourd'hui)
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#3 Le 07/07/2006, à 11:32
- vinc1001888
Re : [Resolu] Simuler une saisie clavier [C/C++]
tu pourrais me l'indiquer merci !
#4 Le 07/07/2006, à 12:53
- Crashforburn
Re : [Resolu] Simuler une saisie clavier [C/C++]
Oui c'est possible, ce soir si je retrouve le doc ou c'est marqué je le poste
Au fait, c'est pas toi qui avait fait un tuto sur comment faire un OS ???
Un blog inutile de plus : http://crashforburn.free.fr/dotclear/
[Membre du club des beaux Ubunteros] : http://forum.ubuntu-fr.org/viewtopic.php?pid=535299
Contre la nouvelle année, votons fonacon : http://www.fonacon.net/
Hors ligne
#5 Le 07/07/2006, à 12:57
- node
Re : [Resolu] Simuler une saisie clavier [C/C++]
Basiquement :
dans le fichier ma_simulation.in :
Je_veux_simuler_la_frappe_de_cette_chaine_de_caracteres
Puis_de_celle_ci
Commande de lancement du programme :
mon_prog < ma_simulation.in
Tu peux tester avec mon_prog.c :
#include <stdio.h>
int main(void) {
char s[100];
scanf( "%s", s );
printf( "premiere chaine: %s\n", s );
scanf( "%s", s );
printf( "deuxieme chaine: %s\n", s );
return 0;
}
Hors ligne
#6 Le 07/07/2006, à 13:00
- gene69
Re : [Resolu] Simuler une saisie clavier [C/C++]
là n'était pas la question.
qui a dit que je savais faire?
Je crois qu'il faut faire comme en linux, c'est à dire rediriger les entrée sorties. J'avais peur de dire une grosse c:Dnnerie, alors je ne l'avais pas écrite. Pourquoi rediriger les ES? parce qu'en C l'entrée standart c'est le clavier.
apparament on peut utiliser les tuyaux (c'est une énorme surprise ! )
regarde là je pense qu'il y a tous les indices nécessaire à ta quête:
http://www.ensta.fr/~gueydan/Poly/Html/node16.html
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#7 Le 07/07/2006, à 13:11
- gene69
Re : [Resolu] Simuler une saisie clavier [C/C++]
@ node
1) tu triches: la redirection d'entrées sorties que tu proposes c'est du shell pur sucre et pas du C.
2) tu es dangereux: le programme que tu proposes comme exemple possède au moins deux failles de type "buffer overflow".
3) tu es sur de la syntaxe de scanf?
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#8 Le 07/07/2006, à 13:16
- gene69
Re : [Resolu] Simuler une saisie clavier [C/C++]
j'y pense en java (et donc sans doute en C++) on empile (encapsule) les constructeurs pour faire des redirections.
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#9 Le 07/07/2006, à 13:28
- node
Re : [Resolu] Simuler une saisie clavier [C/C++]
@gene69
Je triche ?
Pour moi, on peut appeler ça de la simulation d'entrée vu que ça passe par stdin, comme les frappe au clavier. Et puis, il y a un basiquement dans mon message, et la « consigne » est en une phrase qui peut être interprété de plusieurs façons.
C'est sûr qu'il ne faut pas utiliser scanf dans un programme, mais là, c'est un programme de test, pour comprendre le fonctionnement de la redirection, autant faire concis. C'est juste pour faire une « preuve du concept », ce ne sont pas des lignes à insérer dans son propre programme.
Je suis curieux de savoir ce qui te choque dans la syntaxe de scanf.
Hors ligne
#10 Le 07/07/2006, à 17:01
- gene69
Re : [Resolu] Simuler une saisie clavier [C/C++]
pour le scan j'étais pas sur ma machine avec man 3 sous la main. bon méa culpa, je ne sais plus compter jusqu'à deux.
bon apres ya écrit avec "simuler avec C/C++". pouf pouf. égalité
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#11 Le 11/07/2006, à 12:32
- vinc1001888
Re : [Resolu] Simuler une saisie clavier [C/C++]
Merci, c'est ce que je cherchais !
#12 Le 11/07/2006, à 13:32
- gene69
Re : [Resolu] Simuler une saisie clavier [C/C++]
[résolu]
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#13 Le 11/07/2006, à 23:22
- coffee
Re : [Resolu] Simuler une saisie clavier [C/C++]
getchar() et une boucle while() avec un realloc() pour éviter le buffer overflow
Bon sinon perso je vois que fgetc en disant qu'on lit dans stdin puis on fait un fputc ou fprintf dans stdout ou stderr
après c'est un peu bas niveau non?
En tant que modo je mets quand meme résolu
Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)
Hors ligne
#14 Le 15/07/2006, à 04:17
- foobar2000
Re : [Resolu] Simuler une saisie clavier [C/C++]
En C++ c'est encore plus simple
#include <iostream>
int main () {
std::string s;
std::cin >> s;
std::cout << s;
return 0;
}
Aucun rapport avec le logiciel du même nom.
Hors ligne
#15 Le 15/07/2006, à 20:34
- gene69
Re : [Resolu] Simuler une saisie clavier [C/C++]
mais en C++ les opérateurs ne signifient rien puisque qu'on peut les surcharger.
J'abandonne pas.
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne
#16 Le 24/05/2007, à 14:47
- ponchy
Re : [Resolu] Simuler une saisie clavier [C/C++]
Je sais, je suis 3 guerres en retard.. mais trouvez vous ce code-ci bcp plus long ?
#include<stdio.h>
#include<strings.h>
#define SIZE_MAX 100
int main(int argc,char**argv){
char s[SIZE_MAX];
int i=1;
while(fgets(s,SIZE_MAX,stdin)!=NULL){
if(strcmp(s,"bye\n")==0)return;
printf("%dième chaine : %s\n",i,s);
i++;
s[0]='\0';
}
}
Hors ligne