Différence entre getchar et fread
Résolu/Fermé
chaimae97
Messages postés
39
Date d'inscription
jeudi 16 novembre 2017
Statut
Membre
Dernière intervention
13 mars 2019
-
2 avril 2018 à 23:35
chaimae97 Messages postés 39 Date d'inscription jeudi 16 novembre 2017 Statut Membre Dernière intervention 13 mars 2019 - 5 avril 2018 à 20:31
chaimae97 Messages postés 39 Date d'inscription jeudi 16 novembre 2017 Statut Membre Dernière intervention 13 mars 2019 - 5 avril 2018 à 20:31
A voir également:
- Différence entre getchar et fread
- Différence entre tcp et udp - Guide
- Tableau croisé dynamique différence entre deux colonnes ✓ - Forum Excel
- Difference entre followers et suivi - Forum Twitter
- Difference entre actif et en ligne sur messenger - Forum Facebook Messenger
- Difference entre gb et go ✓ - Forum Matériel & Système
1 réponse
Utilisateur anonyme
5 avril 2018 à 15:10
5 avril 2018 à 15:10
Ce n'est pas ce que j'ai compris avec la documentation officielle.
getchar :
int getchar ( void );
Get character from stdin
Returns the next character from the standard input (stdin).
It is equivalent to calling getc with stdin as argument.
Source : getchar sur C++
fread :
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
Read block of data from stream
Reads an array of count elements, each one with a size of size bytes, from the stream and stores them in the block of memory specified by ptr.
The position indicator of the stream is advanced by the total amount of bytes read.
The total amount of bytes read if successful is (size*count).
Source : fread sur C++
De ce que j'ai compris :
getchar permet de récupérer une entrée spécifique (un caractère) sur une entrée spécifique (stdin soit la console).
fread permet de récupérer une entrée variable (bloc de donnée dont la taille est paramétrable) sur une entrée quelconque (stream signifie flux donc en particulier, stdin devrait fonctionner mais applicable pour un fichier).
Ainsi, getchar est plus rapide que fread car c'est sortir l'artillerie lourde que d'utiliser fread à la place de getchar.
getchar :
int getchar ( void );
Get character from stdin
Returns the next character from the standard input (stdin).
It is equivalent to calling getc with stdin as argument.
Source : getchar sur C++
fread :
size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );
Read block of data from stream
Reads an array of count elements, each one with a size of size bytes, from the stream and stores them in the block of memory specified by ptr.
The position indicator of the stream is advanced by the total amount of bytes read.
The total amount of bytes read if successful is (size*count).
Source : fread sur C++
De ce que j'ai compris :
getchar permet de récupérer une entrée spécifique (un caractère) sur une entrée spécifique (stdin soit la console).
fread permet de récupérer une entrée variable (bloc de donnée dont la taille est paramétrable) sur une entrée quelconque (stream signifie flux donc en particulier, stdin devrait fonctionner mais applicable pour un fichier).
Ainsi, getchar est plus rapide que fread car c'est sortir l'artillerie lourde que d'utiliser fread à la place de getchar.
5 avril 2018 à 16:52
Mais j'ai pas compris ce que vous voudriez dire par votre dernière phrase, pourquoi getchar est plus rapide
5 avril 2018 à 20:14
C'est comme si tu voulais remplir un verre d'eau avec un arrosoir. ça marche, mais c'est pas efficace.
Dans la mesure du possible dans le domaine de la programmation, il faut utiliser les fonctions existantes qui se rapproche le plus du besoin. Si tu veux récupérer un caractère de l'utilisateur sur la console : getchar fait l'affaire. Si tu veux lire un fichier qui contient des structures sous la forme d'un code byte : fread.
Tu peux tout faire avec tout mais c'est plus dur dans certains sens et parfois pas optimisé.
5 avril 2018 à 20:31