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 :

Valeurs de type INT dans un "buffer"


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Array
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 210
    Par défaut Valeurs de type INT dans un "buffer"
    Bonjour,

    Je voudrais savoir si, dans un buffer alloué après un appel à fopen(), le contenu du fichier stocké en mémoire est-il représenté en int ou en char?

    Parce que j'ai un code qui lit en entrée des caractère d'un fichier, et, pour représenter les séquences d'échappement, ce serait beaucoup plus vite de mettre une valeur comme ~0 - i.e. le maximum pour un int du point de vue non signé - comme indicateur, comme ça je n'aurais pas à faire les même opérations lors du comptage des caractères et lors du stockage . . . (il n'est pas nécessaire d'être plus précis, là n'est pa la question)

    Est-ce possible?

    P.S. Je sais que l'argument de ungetc() est un int, mais est-ce seulement pour supporter EOF?

    Merci,

    Array

  2. #2
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Un fichier est une suite d'octets donc son contenu est aussi représenté comme tel lorsqu'il est chargé en mémoire. Quand tu demandes la lecture d'un octet, les fonctions du C retournent en cas de succès : un entier (int) de même valeur que l'octet lu. Les octets lus sont considérés comme des unsigned chars, donc l'entier retourné sera toujours un nombre positif. En cas d'erreur, EOF est retourné. EOF est une valeur qui ne peut être la valeur d'un unsigned char converti en int. Pour ce que tu as réellement envie de faire, je n'ai pas bien compris.

Discussions similaires

  1. Ecrire dans champ texte des valeurs de type float seulement
    Par aliomrani1 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 02/03/2007, 11h27
  2. insérer une valeur de type float dans une abse de données
    Par Stephane_br dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/11/2005, 10h47
  3. Valeur par defaut 'True' dans un champ de type bit
    Par Mouse dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2003, 15h26

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