Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1272 connectés 

  FORUM HardWare.fr
  Programmation

  [C] Vider stdin

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Vider stdin

n°1926135
Psyloh
Posté le 23-09-2009 à 12:34:21  profilanswer
 

Salut! J'aimerais savoir ce qu'il en est pour stdin...
 
Je voudrais créé une fonction qui s'assure que le buffer est vide... Or, j'ai remarqué qu'à la moindre vu d'EOF, la console propose un input...
Je me suis dis que la seule solution serait d'insérer un EOF au début du buffer, vous en pensez quoi?? C'est pas super rigoureux, non?
Si c'est pas une solution top top, je me suis dis qu'il serait simple d'utiliser memset si je pouvais connaitre la taille du buffer...
 
En fait, je suis pas super calé dans le fonctionnement des buffers... J'ai un niveau basique! Si vous avez des link vers des pages qui pourraient me permettre de trouver la solution par moi-même ça serait super sympa!
 
En réalité je me pose quelques questions:
- Est-ce que le buffer se charge d'effacer tout ce qui se trouve après EOF?
- Y'a-t-il un moyen de savoir si un buffer est vide?
- stdin est-il un buffer commun à plusieurs applications ou est-il initialisé pour chaque programme?
- Y'a-t-il un moyen de récupérer sa taille?
 
Merci!

mood
Publicité
Posté le 23-09-2009 à 12:34:21  profilanswer
 

n°1926208
olivthill
Posté le 23-09-2009 à 17:22:12  profilanswer
 

Dans quel environnement ? DOS ? Unix ?
 
En tous cas, stdin n'est pas un buffer, mais un pseudo fichier.
La lecture du contenu de stdin ne se fait pas avec char a = stdin[0], mais avec un fread() ou une fonction de lecture de flux équivalente.
Donc, il n'est pas possible de faire un memset() de stdin. Donc stdin n'a pas de taille a priori.
 

Citation :

à la moindre vu d'EOF, la console propose un input...

Que signifie "propose" ici ?

Citation :

stdin est-il ... commun à plusieurs applications ou est-il initialisé pour chaque programme?

Cela dépend comment est redirigé stdin. En général, stdin n'est redirigé que vers une application, mais rien n'empêche que cette fonction redirige le flux stdin qu'elle a lue vers une autre application.

n°1926592
Taz
bisounours-codeur
Posté le 24-09-2009 à 23:52:16  profilanswer
 

Mais c'est quoi cette psychose sur la bufferisation de stdin ? Quel problème rencontres-tu ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C] Vider stdin

 

Sujets relatifs
[C++ / DLL][C++] Extraction des bits d'un nombre
[Réglé][C++]Vérification d'algorithme + conseilsASM(masm32) ou C++ ?
[C] conversioncross compilation C++ et wrapper C++
Programation en C[C#]Cherche idée de programme, sondage
Encoder une URL en CSharp C#[C++] Probleme de Makefile/linkage
Plus de sujets relatifs à : [C] Vider stdin


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR