C : Vider Memoire Tampon

Fermé
WRIDANIOS Messages postés 24 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 11 mai 2009 - 8 avril 2008 à 11:40
PIKATOUT Messages postés 1937 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 27 septembre 2013 - 2 avril 2009 à 19:26
Bonjour,
Je programme en C ,au niveau des etude, depuis 10/2007, mon problem est lorsque je v saisir un caractaire , le compilateur depase la saisie , j'ai utiliser scanf("%c",&car) ou car=getchar()
mais le meme problem , j'ai bien conclu que c'est a cause de la memoir tampon , ils ont ma dis de vider la memoire tampon avant d'effectuer la saisie . j'ai essayer 'fflush(0)' du header "unistd.h" , mes c'est tjr le meme probleme . Quoi faire, meci d'avance...

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 838
31 mars 2009 à 00:18
Salut,
Pour vider le buffer clavier en C, il faut faire :
char c;
while( (c=getchar())!='\n' && n!=EOF );

Cdlt
WRIDANIOS Messages postés 24 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 11 mai 2009 1
8 avril 2008 à 12:01
personne pe m'aider .. svp..
salut, pour vider la memoire tampon, il suffit d'ouvrir le registre
Cliquez sur le bouton Démarrer, sur Exécuter… puis saisissez Regedit. Validez par OK.
Rendez vous à la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Dans la partie droite de la fenêtre, double cliquez alors sur la valeur ClearPageFileAtShutdown puis saisissez 1 dans le champ Données de la valeur. Cliquez sur OK.
Fermez la base de registres puis redémarrez votre ordinateur pour valider les changements.
a chaque demarrage, la mémoire sera vidée.
0
PIKATOUT Messages postés 1937 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 27 septembre 2013 353
30 mars 2009 à 23:58
Bonsoir, c'est a la fermeture quand tu éteind le PC que le fichier d'échange (mémoire virtuelle) aussi appelé "fichier Swap"sera nettoyé : Pour des raisons de sécurité et d'optimisation, il est possible d’activer la purge de ce fichier à l'arrêt de la machine. Cette fonction est désactivée par défaut car elle augmente « sommairement » le temps de fermeture du système d'exploitation.Éditez la valeur en double cliquant sur la valeur :
ClearPageFileAtShutdown
et donnez-lui la valeur 1.
0
PIKATOUT Messages postés 1937 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 27 septembre 2013 353
31 mars 2009 à 00:01
Ce n'est pas une mémoire tampon;mais bien un fichier d'échange créé sur le disque dur, c'est la mémoire virtuelle.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 838 > PIKATOUT Messages postés 1937 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 27 septembre 2013
31 mars 2009 à 00:26
Salut,
Non t'y es pas là. Effectivement le problème est dû au tampon clavier et non à fichier d'échange créé sur le disque dur.
0
PIKATOUT Messages postés 1937 Date d'inscription dimanche 25 mai 2008 Statut Membre Dernière intervention 27 septembre 2013 353 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
2 avril 2009 à 19:26
Oups !!..je n'ai tout lu,okay fiddy merci de me le faire remarquer.
0
pour vider la memoire tampon utilise fflush(stdin) avant de lire le caractere et ça va marcher
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 838
31 mars 2009 à 00:17
Non, fflush(stdin) a un comportement indéfini.
0