Bonjour,
je cherche un equivalent de la fonction gcount en C.
Merci pour votre aide ++
Bonjour,
je cherche un equivalent de la fonction gcount en C.
Merci pour votre aide ++
Et elle fait quoi cette fonction ? T'est un peu light, y'a pas tout le monde qui connais !
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 text = gets (text); // text de type char* correctement initialisé int n = strlen (text);
nan mais laisse, c'est a propos du topic "std:: programme c", ce sont des fonctions définies dans son code, et on lui a dit que c'était pas standard qu'il fallait lire les sources, mais visiblement il a pas saisi
Venez partager vos expériences au sein d'un projet sur slicesofit, agile & amélioration continue
Il faut jamais utiliser gets mais plutôt fgets ... à garder ca en mémoireEnvoyé par Fabllot
![]()
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Juste après un appel getline, la fonction-membre gcount() permet de savoir quelle est la longueur de la chaine de caractères effectivement lue.
Mais apparement cette fonction vient du C++ et n'est pas compatible en C.
Certes, mais du coup la question n'a plus raison d'être puisque qu'on indique le nombre de caractère à lire dans les paramètres de fgets...
Pardon, le maximum de caractères à lire ... Mea Culpa...
Bin logique, ce qui viens du C peut être dans une certaines mesure compatible avec le C++ mais l'inverse tu peux oublier, il faut alors créer tes propres routines ou utiliser des bibliothèques comme GLib par exemple pour certains cas !Envoyé par gy0m76
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Donc, sauf erreur de ma part :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 char saisie[20]; fgets (saisie, sizeof saisie, stdin); /* nb est le nombre de caractères effectivement lus */ int nb = strlen(saisie);
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
On ne connais "jamais" par avance le nombre d'octets lus, même avec une saisie par stdin ... mais on indique un maximum à fgets pour le buffer puis après tu peux éventuellement déterminer la taille réelle de la chaîne !Envoyé par Fabllot
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
En fait dans mon cas, je lit le nombre de pixel d'une image et ensuite je veut comparer si cette valeur est différente de 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 fread(buf, 4096, 4096, bmp); if (gcount(bmp) != 0) ....
C'est ça ?Envoyé par gy0m76
http://www.cppreference.com/cppio/gcount.html
- Si tu utlises fgetc() et que tu ne retournes pas EOF, gcount vaut 1
- Si tu utilises fread() et que la valeur retournée est égale au nombre d'éléments passés en paramètre (lire la doc), gcount vaut la valeur retournée x la taille d'un élément.
- Si tu utilises fgets() et que celui ci n'a pas retourné NULL, gcount est la longueur de la chaine lue (strlen).
Pas de Wi-Fi à la maison : CPL
Oui presque, il faut juste déterminer si le caractère \n est présent (ce qui indique une chaîne complète avec un retour chariot (saisie validée par l'utilisateur en appuyant sur Enter) et le remplacer par un zéro de fin de chaîne.Envoyé par zooro
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
En le disant dès le début, on aurait pu te répondre directement...Envoyé par gy0m76
Une brêve lecture du man de fread nous donne :
fread et fwrite renvoient le nombre d'éléments correctement lus ou écrits (et non pas le nombre d'octets).
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
Exact.Envoyé par Franck.H
Je l'oublie toujours celui-là !![]()
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
gets(), c'est le Diable.Envoyé par Fabllot
![]()
Pas de Wi-Fi à la maison : CPL
Vade retro, gets() !Envoyé par Emmanuel Delahaye
![]()
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
Va falloir apprendre à être plus précis sur ce que tu veux et pourquoi tu le veux, ca nous évitera de taper 50 posts avant que tu nous dise la vraie raison !Envoyé par gy0m76
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
J'y penserait pour la prochaine fois, merci a tous pour votre aide en tout cas.
Voila ce que j'ai modifier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int i; i = fread(buf, 4096, 4096, bmp); if (i != 0)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager