Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1358 connectés 

  FORUM HardWare.fr
  Programmation

  avis aux amateur de C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

avis aux amateur de C

n°147312
cherchepa
Cherche pas...
Posté le 29-05-2002 à 19:46:55  profilanswer
 

comment on fait pour pa c un tableau en fichier  
chui sur ke c tt simple mais bon...
moi kan je bidouille ca me fait ca....
alban               moi                 je@moi.fr           È  prout               prout               prout               
 
et evidement ya probleme ...
vu ke ca ne va pas a la ligne...
et pi c koi ce trucmuch la:=>>> È  
pour moi ca devrai etre un chiffre ....
 
hlp si qqn a une idée...

mood
Publicité
Posté le 29-05-2002 à 19:46:55  profilanswer
 

n°147313
cherchepa
Cherche pas...
Posté le 29-05-2002 à 19:47:52  profilanswer
 

thx

 

[jfdsdjhfuetppo]--Message édité par cherchepa le 29-05-2002 à 19:48:11--[/jfdsdjhfuetppo]

n°147314
Groody
Utilisez MES smileys §
Posté le 29-05-2002 à 19:47:57  profilanswer
 

y'a une section PROG exprette pour ce genre de prb. "Déplacement activé"


---------------
Vidéo Concorde Air France | www.kiva.org
n°147316
deathsharp
Posté le 29-05-2002 à 19:53:33  profilanswer
 

en francais ca donne quoi?


---------------
What butter and whiskey won't cure, there is no cure for.
n°147317
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-05-2002 à 19:54:22  profilanswer
 

cherchepa a écrit a écrit :

comment on fait pour pa c un tableau en fichier  
chui sur ke c tt simple mais bon...
moi kan je bidouille ca me fait ca....
alban               moi                 je@moi.fr           È  prout               prout               prout               
 
et evidement ya probleme ...
vu ke ca ne va pas a la ligne...




peut être que si tu insérais les caractères 0x0D et 0x0A à la fin de chaque ligne, ça marcherait mieux....  :sarcastic:  

Citation :


et pi c koi ce trucmuch la:=>>> È  
pour moi ca devrai etre un chiffre ....


ben pour le compilateur, c'est un caractère qui indique que :
- soit tu récupères plus de caractères que ta chaine n'en contient
- soit tu ne termines pas ta chaine ('\0';)

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 29-05-2002 à 19:54:49--[/jfdsdjhfuetppo]


---------------
J'ai un string dans l'array (Paris Hilton)
n°147319
cherchepa
Cherche pas...
Posté le 29-05-2002 à 19:58:30  profilanswer
 

Harkonnen a écrit a écrit :

 
peut être que si tu insérais les caractères 0x0D et 0x0A à la fin de chaque ligne, ça marcherait mieux....  :sarcastic:  

Citation :


et pi c koi ce trucmuch la:=>>> È  
pour moi ca devrai etre un chiffre ....


ben pour le compilateur, c'est un caractère qui indique que :
- soit tu récupères plus de caractères que ta chaine n'en contient
- soit tu ne termines pas ta chaine ('\0';)  
 
 




 
temps mort !!!!!!
en gros c un truc de merde fo pas chercher loin...
mon tableau ya nom adressede serveur et taille de la boite mail( donc int)
 
ou ve tu ke je rajoute /o ???
parce ke mon tableau ... ben je suis sense ne rien rajouter dedans...
 
en gros kan j'affiche mon tableau ca me fait ..
utilisateur provider adresse      taille
prout       aol      prout@aol       5
 
 
mais kan je sauvegarde... ben ca merde
 
donc vu ke je suis nwbizzz ben le /o je c pas c koi....

 

[jfdsdjhfuetppo]--Message édité par cherchepa le 29-05-2002 à 19:59:46--[/jfdsdjhfuetppo]

n°147323
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-05-2002 à 20:01:41  profilanswer
 

poste ton code, ça ira beaucoup mieux


---------------
J'ai un string dans l'array (Paris Hilton)
n°147338
cherchepa
Cherche pas...
Posté le 29-05-2002 à 20:20:31  profilanswer
 

Harkonnen a écrit a écrit :

poste ton code, ça ira beaucoup mieux  




 
 
ca c pour la sauvegarde
void sauvegarde()
{
 int i;
 char nomdelasauvegarde[20];
 
 puts(" entrer le nom de la sauvegarde\n " );
 scanf("%s", nomdelasauvegarde);  
 fichierpti=fopen(nomdelasauvegarde,"w" );
 for (i=0;i<max;i++)
 {
  fwrite(&tab_mail[i],sizeof(mail),1,fichierpti);
 // fwrite((char *)tab_mail[i].serveur,1,20,fichierpti);
 // fwrite((char *)tab_mail[i].adresse,1,20,fichierpti);
     fprintf(fichierpti,"%d",tab_mail[i].taille);
 }
 fclose(fichierpti);
}

n°147340
cherchepa
Cherche pas...
Posté le 29-05-2002 à 20:22:20  profilanswer
 

et ca c le reste ki pe ptet interreser qqn...
 
 
typedef struct
 {
  char user[20],serveur[20],adresse[20];
  int taille;
 }mail;
 
 mail tab_mail[100];
 
FILE *fichierpti;
 
int max=0;
 
void historique()
{
 int i;
 char rep;
 int sortie;
 sortie=1;
 i=max;
 while ( sortie==1 )
 {
  puts("donner le nom de l'utilisateur\n" );
  scanf("%s",tab_mail[i].user);
  puts("donner le nom du serveur\n" );
  scanf("%s",tab_mail[i].serveur);
  puts("donner l'adresse mail\n" );
  scanf("%s",tab_mail[i].adresse);
  puts("donner la taille de la boite\n" );
  scanf("%d",&tab_mail[i].taille);
  flushall();

n°147381
cassidy
Black Rainbow
Posté le 29-05-2002 à 21:44:03  profilanswer
 

conseil: evite les scanf("%s", string);
c pas tres secur.
Preferes y les fgets ou a la limite tu met la taille ds %20s par ex
 
ca a rien avoir avec ton prob m'enfin :)


---------------
Join us now and share the software;
mood
Publicité
Posté le 29-05-2002 à 21:44:03  profilanswer
 

n°147453
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-05-2002 à 00:07:52  profilanswer
 

Allez, le dépannage de minuit avant d'aller au pieu :d
 
Déja, évite ce genre de manip:

Code :
  1. fwrite(&tab_mail[i],sizeof(mail),1,fichierpti);


car tu n'as aucun controle sur les différents membres de ta structure.
Si tu veux sauvegarder une structure, sauvegarde ses membres 1 par 1 (surtout si tu veux les sauvegarder sous forme de tableau). Comme de plus, ce sont des chaines de caractères, il faut sauvegarder le nombre exact de caractères par chaine, et non le buffer entier de 20 caractères, on sait jamais ce qu'il contient.
Ensuite, il faut séparer les différents champs par une tabulation ! Dans ton code, ils sont séparés par les résidus de la mémoire, d'ou les caractères bizarroides.
Enfin, après chaque ligne, un retour chariot est nécessaire, sinon tu auras tout sur une ligne.
Ce qui nous donne :

Code :
  1. void sauvegarde()
  2. {
  3. int i;
  4. char nomdelasauvegarde[20];
  5. puts(" entrer le nom de la sauvegarde\n " );
  6. scanf("%s", nomdelasauvegarde); 
  7. fichierpti=fopen(nomdelasauvegarde,"w" );
  8. for (i=0;i<max;i++) {
  9.  fwrite(&(tab_mail[i].user), strlen(tab_mail[i].user), 1, fichierpti);
  10.  fprintf(fichierpti,"\t" ); //tabulation
  11.  fwrite(&(tab_mail[i].serveur), strlen(tab_mail[i].serveur), 1, fichierpti);
  12.  fprintf(fichierpti,"\t" ); //tabulation
  13.  fwrite(&(tab_mail[i].adresse), strlen(tab_mail[i].adresse), 1, fichierpti);
  14.  fprintf(fichierpti,"\t" ); //tabulation
  15.  fprintf(fichierpti,"%d\n",tab_mail[i].taille); // derniere ligne => on saisit un retour chariot
  16. }
  17. fclose(fichierpti);
  18. }


ainsi, ça devrait aller beaucoup mieux !
De plus, évite les variables globales dans tes sources, c'est mal  :non:  
Enfin, Cassidy a raison ! Au lieu d'utiliser scanf, utilise fgets comme ceci :
fgets(tab_mail[i].user, 20, stdin);
tu récupères un maximum de 20 caractères dans le champ user de ta structure, à partir de l'entrée standard (clavier).
 
Voila ! Ca devrait fonctionner (j'ai pas testé)
 
Sur ce, moi je vais au dodo  [:lorelei]  
 
A+

 

[jfdsdjhfuetppo]--Message édité par Harkonnen le 30-05-2002 à 00:10:36--[/jfdsdjhfuetppo]


---------------
J'ai un string dans l'array (Paris Hilton)
n°147491
gilou
Modérateur
Modzilla
Posté le 30-05-2002 à 05:23:08  profilanswer
 

Harkonnen a écrit a écrit :

Allez, le dépannage de minuit avant d'aller au pieu :d
 
Déja, évite ce genre de manip:

Code :
  1. fwrite(&tab_mail[i],sizeof(mail),1,fichierpti);


car tu n'as aucun controle sur les différents membres de ta structure.




Euh, non:
A partir du moment ou il va faire un  

Code :
  1. fread(&tab_mail[i],sizeof(mail),1,fichierpti);


pour lire, ca devrait coller, et c'est efficace, tant que c'est le meme executable qui relit le fichier, et que sa structure tab_mail[i] a ete correctement remplie.

Harkonnen a écrit a écrit :

 
Ensuite, il faut séparer les différents champs par une tabulation  




 :ouch:  :ouch:  :ouch:  
Oulaaa! on voit qu'il etait tard quand tu as ecrit cela. Comme si les '\0' en fin de chaine ne servaient a rien...
 
Notes que si le probleme initial etait de sauvegarder dans un fichier "lisible" a la console (et non pas lisible uniquement par programme), ce que tu as dit serait juste; mais c'est pas precisé dans le sujet initial. (ou alors, cherchepa explique tres mal ce qu'il veut), et alors, un  

Code :
  1. fprintf(fichierpti, "%s\t%s\t%s\t%d\n", tab_mail[i].user, tab_mail[i].server, tab_mail[i].adresse, tab_mail[i].taille);


sera plus efficace qu'une ecriture champ a champ.
A+,

 

[jfdsdjhfuetppo]--Message édité par gilou le 30-05-2002 à 05:35:50--[/jfdsdjhfuetppo]


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°147515
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 30-05-2002 à 09:14:37  profilanswer
 

Après relecture, je constate effectivement que je n'ai pas été clair sur certains trucs, mais bon il était minuit passé hein, chuis pas un robot moi  :D  
En ce qui concerne les tabulations, je suis d'accord avec toi, les '\0' ne sont pas fait pour les chiens et effectivement, il n'a pas précisé s'il souhaitait lire ou non le fichier à la console, ce que moi j'ai supposé, car il dit qu'il souhaite avoir chaque tab_mail[n] sur une ligne différente. Dans quel but si ce n'est pour une réutilisation pour la console ou un éditeur de texte ?
Je voulais aussi comme toi grouper tous les champs via fprintf, mais vu qu'apparemment il connait très peu le C, j'ai jugé préférable pour sa compréhension de séparer l'écriture champ par champ.
 
NB: j'ai pensé ma réponse entièrement en supposant qu'il relirait son fichier via un éditeur de texte, ceci pouvant expliquer certaines réponses de ma part assez bizarres (notamment le fait que chaque champ serait séparé par des hiéroglyphes). Effectivement s'il fait un fread, tout passe sans pbs, mais son premier post laisse supposer qu'il lit sa sauvegarde par un éditeur de texte directement.
 
bon, direction la douche  [:lorelei]


---------------
J'ai un string dans l'array (Paris Hilton)
n°148199
cherchepa
Cherche pas...
Posté le 30-05-2002 à 21:18:29  profilanswer
 

Harkonnen a écrit a écrit :

Après relecture, je constate effectivement que je n'ai pas été clair sur certains trucs, mais bon il était minuit passé hein, chuis pas un robot moi  :D  
En ce qui concerne les tabulations, je suis d'accord avec toi, les '\0' ne sont pas fait pour les chiens et effectivement, il n'a pas précisé s'il souhaitait lire ou non le fichier à la console, ce que moi j'ai supposé, car il dit qu'il souhaite avoir chaque tab_mail[n] sur une ligne différente. Dans quel but si ce n'est pour une réutilisation pour la console ou un éditeur de texte ?
Je voulais aussi comme toi grouper tous les champs via fprintf, mais vu qu'apparemment il connait très peu le C, j'ai jugé préférable pour sa compréhension de séparer l'écriture champ par champ.
 
NB: j'ai pensé ma réponse entièrement en supposant qu'il relirait son fichier via un éditeur de texte, ceci pouvant expliquer certaines réponses de ma part assez bizarres (notamment le fait que chaque champ serait séparé par des hiéroglyphes). Effectivement s'il fait un fread, tout passe sans pbs, mais son premier post laisse supposer qu'il lit sa sauvegarde par un éditeur de texte directement.
 
bon, direction la douche  [:lorelei]  




 
thx all
v voir si ca marche de ce pas...
he oui g pas pu i aller avant .. exam oblig...
et sinon je m'en fout de pouvoir le lire au bloc-note ou non
juste ke pour moi ca me paraisait obliger si je voulais m'en reservir....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  avis aux amateur de C

 

Sujets relatifs
avis au betes question tordus !!!![Flash] avis aux pros, une sorte de course de voiture
avis sur un ide PHP: NuSpherePHPEd[DREAMWEAVER MX] Vos avis, c'est ici :)
J'ai besoin de votre avis.[MERISE] Est ce correct à votre avis ?
un avis pour mon premier site????[C++] A votre avis c'est possible de faire ca?
votre avis sur cet hébergemen pour $3.92, vous en pensez quoi ? arnaq?C# et .NET : votre avis
Plus de sujets relatifs à : avis aux amateur de C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR