IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

equivalent fonction gcount()


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Points : 49
    Points
    49
    Par défaut equivalent fonction gcount()
    Bonjour,

    je cherche un equivalent de la fonction gcount en C.

    Merci pour votre aide ++

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    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 !

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    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);
    Non?

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    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

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Fabllot
    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);
    Non?
    Il faut jamais utiliser gets mais plutôt fgets ... à garder ca en mémoire
    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 !

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Points : 49
    Points
    49
    Par défaut
    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.

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    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...

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    Pardon, le maximum de caractères à lire ... Mea Culpa...

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par gy0m76
    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.
    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 !
    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 !

  10. #10
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    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

  11. #11
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Fabllot
    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...
    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 !
    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 !

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Points : 49
    Points
    49
    Par défaut
    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)
                 ....

  13. #13
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gy0m76
    je cherche un equivalent de la fonction gcount en C.
    C'est ça ?
    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

  14. #14
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par zooro
    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);
    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.
    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 !

  15. #15
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par gy0m76
    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)
                 ....
    En le disant dès le début, on aurait pu te répondre directement...
    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

  16. #16
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Franck.H
    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.
    Exact.
    Je l'oublie toujours celui-là !
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  17. #17
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Fabllot
    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);
    Non?
    gets(), c'est le Diable.
    Pas de Wi-Fi à la maison : CPL

  18. #18
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    gets(), c'est le Diable.
    Vade retro, gets() !
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  19. #19
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par gy0m76
    Bonjour,

    je cherche un equivalent de la fonction gcount en C.

    Merci pour votre aide ++
    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 !
    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 !

  20. #20
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    Points : 49
    Points
    49
    Par défaut
    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)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Equivalence fonction Get de visual basic
    Par berpi dans le forum Débuter
    Réponses: 4
    Dernier message: 10/02/2008, 23h50
  2. Vba Excel 2000 - Equivalence Fonctions
    Par os_rouen dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/02/2007, 10h43
  3. Equivalent fonction Beep
    Par fabiengb dans le forum Windows
    Réponses: 1
    Dernier message: 24/08/2006, 13h25
  4. equivalent fonction explode (php)
    Par lololoic dans le forum Access
    Réponses: 6
    Dernier message: 21/08/2006, 18h34
  5. Equivalent Fonction RechercheV
    Par RdLg2@ dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2005, 00h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo