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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    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
    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
    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

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    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.

  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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    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 !

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    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);

  7. #7
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    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 !

  8. #8
    Membre chevronné
    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
    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?

  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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    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 !

  10. #10
    Membre chevronné
    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
    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...

  11. #11
    Membre chevronné
    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
    Par défaut
    Pardon, le maximum de caractères à lire ... Mea Culpa...

  12. #12
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    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
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    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 !

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    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.

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    gets(), c'est le Diable.
    Vade retro, gets() !

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    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).

  17. #17
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    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 !

  18. #18
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 151
    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)

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par gy0m76
    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)
    J'aurais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       if (i != 4096)
       {
          /* erreur de lecture */
    D'autre part, buf doit faire 16 Mbytes, c'est du sérieux...

+ Répondre à la discussion
Cette discussion est résolue.

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