Connaître la taille de l'entrée standard en C
Bonjour à tous,
Je souhaitais savoir s'il y avait une possibilité de récupérer la taille d'une entrée standard en C sans déplacer le pointeur de lecture (comme getchar() suivit d'un compteur).
J'ai également essayé avec une déclaration FILE * input=stdin; avec un fseek(input,0,SEEK_END) et un ftell mais ça nous retourne -1 quelque soit la taille.
Merci d'avance.
- Classez ces fichiers de la plus petite taille (1) à la plus grande (4).
- Comment réduire la taille d'un fichier - Guide
- Forcer la suppression d'un fichier - Guide
- Ajoutez à la liste de contacts ana le goff, inscrite le 27 novembre 2015, dans la catégorie i. puis triez les contacts en les classant : par ordre alphabétique de leur nom de famille (critère principal), puis par date du plus récent au plus ancien (critère secondaire). quel mot apparaît à la verticale dans la colonne "catégorie" entre les lignes 200 et 209 (en-tête compris) ? ✓ - Forum Word
- Comment reduire la taille d'une photo - Guide
- Trier du plus petit au plus grand excel - Guide
2 réponses
Salut arkoy,
Non, je ne crois pas.
Si un fichier était redirigé sur stdin oui, tu pourrais faire un fseek dessus (SEEK_END pourra ou non fonctionner sur les fichiers binaires cependant). Mais là je pense que tu parles de l'entrée standard venant du clavier.
Je ne connais pas d'autre moyen qu'en consommer le contenu pour voir ce qu'elle contient (à part faire getc() et ungetc() peut-être).
Pourquoi poses-tu cette question ?
Bonjour,
Je ne vois pas comment ce serait techniquement possible. En effet, dans le cas général, stdin peut être alimenté par un flot de données arbitrairement long (par exemple à l'aide d'un pipe), et donc au moment où tu veux formuler ta requête, il n'y a aucun moyen de savoir quelle sera la taille de ce flot.
Bonne chance