begin process at 2012 05 28 21:15:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Enregistrer/Récupérer un nombre sur plusieurs octets


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Enregistrer/Récupérer un nombre sur plusieurs octets

mardi 17 janvier 2006 à 21:52:18 | Enregistrer/Récupérer un nombre sur plusieurs octets

tekila_bandita

Bonjour,
J'aimerais enregistrer un nombre dans un fichier sur plusieurs octets de la meme façon qu'un long int, et pouvoir le recuperer...

Je m'explique :
un int est codé sur un octet donc 8 bits :
11111111

donc a pour valeur maximal 29-1 (=255)
un long int ( je ne saispas sur combien d'octet alors je mets 2 dans mon exemple ) :
11111111 11111111

donc a pour valeur maximale 217-1

j'aimerais faire pareil dans un fichier....


MERCI !
mardi 17 janvier 2006 à 22:31:44 | Re : Enregistrer/Récupérer un nombre sur plusieurs octets

rrk275

bah deja un int vaut generalement 4 et un int aussi..
mais pour les fichier (en C)
fread(variable,nbdeblock,tailleblockenoctet,fichierpointeur);// pour lire
fwrite(variable,nbdeblock,tailleblockenoctet,fichierpointeur);//pour ecrire.
et la tu choisi la taille des block !! et le nb de block..
j'ai jamais compris pourquoi y en avait deux..mais il sont la alors autant les utiliser...
mercredi 18 janvier 2006 à 00:15:06 | Re : Enregistrer/Récupérer un nombre sur plusieurs octets

luhtor

Au passage : 2^9-1 = 511.
Quand tu as "n" bit, tu peux obtenir un entier non signé de valeur maximale 2^n-1. Je sais pas d'ou tu sors ce 2^(n+1)-1
mercredi 18 janvier 2006 à 06:55:14 | Re : Enregistrer/Récupérer un nombre sur plusieurs octets

Matt67

Bonjour,

Pas très explicite ton exemple, explique un peu plus si tu veux qu'on t'aide...

rrk275 -> 1) fread et fwrite c'est sur windows et rien ne permet de dire qu'il est sous windows ... 2) Tu n'as pas compris pourquoi il y avait deux quoi ???

Matt...
mercredi 18 janvier 2006 à 11:08:27 | Re : Enregistrer/Récupérer un nombre sur plusieurs octets

ctx_man

Salut !

tekila_bandita > Sur une plateforme PC Win32 :
       char = 8bits
       short = 16bits
       long = int = 32bits
Ces valeurs sont vraies pour toutes les plateformes a l'exception du int qui est codé sur un nombre de bits égale à la taille du bus de données (si c'est un processeur 12bits, le int est sur 12bits également)

luthor > Il faudrait effectivement qu'il revoye ses cours de binaire

Matt67 > C'est vrai que ce n'est pas explicite pour un sous, cependant ta reflexion a rrk275 est completement fausse. fopen, fread, fwrite, fclose, .... toutes ces fonctions sont définies dans stdlib.h ou stdio.h (je sais plus laquel mais c'est pas bien important).
Tu remarquera les 3 premieres lettres du fichier : STD, ca veut dire standard. C'est du C, comme les C est compilable et exécutabe en C++, ca rend ces fonctions compatibles sous toutes plateformes pourvue d'un compilateur C/C++

Le travail c'est la santé, ne rien faire c'est la préservé !!!
mercredi 18 janvier 2006 à 15:57:29 | Re : Enregistrer/Récupérer un nombre sur plusieurs octets

rrk275

Quand je dis je n'ai pas compris pourquoi deux block , c'est parce qu'un seul aurait pu suffire (je parle du nbblock et taille bloc..) car le nombre total d'octet est un simple multiplication de ces deux la .. (peut etre une maniere de ranger.(quel interet...))
et qu'on on connait mal on agressif et de maniere general mieu vaut etre poli .. surtout qu'on on contredit qqun (meme si on a raison !! !! (un petit smiley qui sourit .. c'est pas grand chose mais ca change la connotation .. ))

mercredi 18 janvier 2006 à 21:32:23 | Re : Enregistrer/Récupérer un nombre sur plusieurs octets

Matt67

Bonsoir,

Vous remarquerez que le message était matinal et je fais mes plus plates excuses à rrk275...
Effectivement fread et fwrite c'est dans stdio.h j'ai confondu avec writefile, readfile (de chez windows).

Pour rrk275 -> je ne suis pas agressif du tout.
size_t fread (void *ptr, size_t size, size_t nmemb, FILE *stream);
exemple :
int tab[10];
FILE *fp;
[../..]
fread(tab, sizeof(int), 10, fp)
[../..]

Matt...
lundi 23 janvier 2006 à 11:37:40 | Re : Enregistrer/Récupérer un nombre sur plusieurs octets

ctx_man

Explication sur le pourquoi specifier une taille de bloque dans fread : A l'origine c'etait pour lire des bloque complet, je m'explique, tu creer une structure qui fait 1024 octets(une fiche de renseignement personnel par exemple). Tu en enregistre 10 dans un fichier. Et quand tu lit ce fichier, manque de bol, tu t'appercoit que ta derniere structure n'est pas complete, elle ne pese que 950 octets. En specifiant une taille de bloque de 1024, ta derniere structure n'est pas lut car elle n'est pas complete. Maintenant, c'est ce qui etait prevu a l'origine, je n'ai pas tester si ca fonctionne reellement. Sachant que c'est des fonction standards, elles peuvent changer legerement de comportement selon la platerforme. Je ne peux donc pas affirmer que ca fonctionne.


Cette discussion est classée dans : enregistrer, récupérer, nombre, int, octets


Répondre à ce message

Sujets en rapport avec ce message

vecteur avec int et char [ par Tyroflan ] int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable vecteur avec int et char [ par Tyroflan ] int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable Probleme fonctions [niveau debutant] [ par zzzzzz ] en fait je voulais faire une applic qui nous demande un nombre de part et de fin si on met par exemple 2 et 7 sa ecrira 234567 grace a une boucle. le getch ou getchar() ? [niveau debutant] [ par zzzzzz ] :P //---------------------------------------------------------------------------#include #include // getch()#include // c Comment récupération la partie fractionnaire d'un nombre [ par Niníel ] Bonjour! Voila je cherche la fonction qui permet de récupérer la partie fractionnaire d'un nombre. Ex: si j'ai 4.25, je veux récupérer juste le 0.25.. Arbres binaires [ par His_Dudeness ] Bonjour, je suis en train de me taper un tp pour un cours sur les arbres. Dans le code qui suit, la racine redevient null a chaque fois qu'elle sort convertir un int en char ??? [ par tintin72 ] Salut,Comment convertir un int en char pour que la valeur numérique du int devienne un nombre écrit ? par ex: pour que : int nombre = 18; donne une fo Ecrire sur plusieurs octets [ par guifr ] Bonsoir à tous,J'aimerais savoir comment faire pour écrire un nombre entier sur un certain nombre d'octet, notamment sur 2, 3 et 4 octets. La difficul Aide algorithmique TESTAGE !! [ par ZogStriP ] Bonjour tout le monde !!Je suis en train de faire le concours de PROLOGIN (www.prologin.org) et j'en suis au QCM 2004 n°4, mais là je bloque un peu!Je Tableau et char to int [ par Niníel ] Bonjour!J'ai un tableau: chTabStart[64] dans lequel je rentre un nombre dans le format suivant: d_25 pour un nombre décimale par exemple. Donc dans mo


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,335 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales