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

  FORUM HardWare.fr
  Programmation
  C++

  Quelqu'un pourrais me dire ou est mon erreur ????

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quelqu'un pourrais me dire ou est mon erreur ????

n°201814
Lenoiche
Posté le 26-08-2002 à 10:43:05  profilanswer
 

Code :
  1. void ecriture(FILE *source,FILE *resultat)
  2. {
  3.     int x,i,j;
  4.     char lettre,mot[64];
  5.     x=0;
  6.     i=0;
  7.     while ((lettre=fgetc(source)) !=';')
  8.         {
  9.           mot[i]=lettre;
  10.           i++;
  11.         }
  12.     for (j=0;j<=i;i++)
  13.         fputc(mot[j],resultat);
  14. }

mood
Publicité
Posté le 26-08-2002 à 10:43:05  profilanswer
 

n°201822
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 10:50:28  profilanswer
 

Lenoiche a écrit a écrit :

Code :
  1. void ecriture(FILE *source,FILE *resultat)
  2. {
  3.     int x,i,j;
  4.     char lettre,mot[64];
  5.     x=0;
  6.     i=0;
  7.     while ((lettre=fgetc(source)) !=';')
  8.         {
  9.           mot[i]=lettre;
  10.           i++;
  11.         }
  12.     for (j=0;j<=i;i++)
  13.         fputc(mot[j],resultat);
  14. }






 

Code :
  1. void ecriture(FILE *source,FILE *resultat)
  2. {
  3.     int x,i,j;
  4.     char lettre,mot[64];
  5.     x=0;
  6.     i=0;
  7.     while ((lettre=fgetc(source)) !=';')
  8.         {
  9.           mot[i]=lettre;
  10.           i++;
  11.         }
  12.     for (j=0;j<i;j++)
  13.         fputc(mot[j],resultat);
  14. }

n°201837
Lenoiche
Posté le 26-08-2002 à 11:01:58  profilanswer
 

lol
 
j suis vraiment un boulet mais de toute façon pas reveiller
mais par contre ca marche tjrs po

n°201838
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 11:03:54  profilanswer
 

Lenoiche a écrit a écrit :

lol
 
j suis vraiment un boulet mais de toute façon pas reveiller
mais par contre ca marche tjrs po




 
Qu'est ce que t'entend par "ca marche pas"?

n°201840
Lenoiche
Posté le 26-08-2002 à 11:05:52  profilanswer
 

et bien lors de la copilation tout est okay , mais qd je lance sous DOS ca merde
 
voila en gros ce que donne mon programme
 

Code :
  1. #include <stdio.h>
  2. char nom1[64]={0},nom2[64]={0},nom3[64]={0},c;
  3. FILE *fichier1,*fichier2,*fichier3;
  4. void ouverture(FILE **fichier,char *nom,char *attribut)
  5. {
  6. if ((*fichier = fopen(nom,attribut)) == NULL)
  7.         printf("ERREUR : impossible d'ouvrir le fichier %s .\n",nom);
  8.     else
  9.         printf("Fichier %s ouvert .\n",nom);
  10. }
  11. void ecris(FILE *source,FILE *resultat)
  12. {
  13.     int i,j;
  14.     char lettre,mot[64];
  15.     i=0;
  16.     while ((lettre=fgetc(source)) !=';')
  17.         {
  18.           mot[i]=lettre;
  19.           i++;
  20.         }
  21.     for (j=0;j<i;j++)
  22.         fputc(mot[j],resultat);
  23. }   
  24.        
  25.          
  26. main()
  27. {
  28.     printf("Entrez le nom du fichier source :\n" );
  29.     scanf("%s",nom1);
  30.     ouverture(&fichier1,nom1,"r" );
  31.     printf("\n" );
  32.    
  33.    
  34.     printf("Entrez le nom du fichier destination :\n" );
  35.     scanf("%s",nom3);
  36.     ouverture(&fichier3,nom3,"w" );
  37.  
  38.    ecris(fichier1,fichier2);
  39.    
  40. }

n°201846
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-08-2002 à 11:28:54  profilanswer
 

Code :
  1. FILE *fichier1, *fichier2, *fichier3;
  2. (...)
  3. void ouverture(FILE *fichier,char *nom,char *attribut)
  4. {
  5. if ((fichier = fopen(nom,attribut)) == NULL)
  6.         printf("ERREUR : impossible d'ouvrir le fichier %s .\n",nom);
  7.     else
  8.         printf("Fichier %s ouvert .\n",nom);
  9. }
  10. (...)
  11. main()
  12. {
  13.    printf("Entrez le nom du fichier source :\n" );
  14.    scanf("%s",nom1);
  15.    ouverture(fichier1,nom1,"r" );
  16.    printf("\n" );
  17.    
  18.    
  19.    printf("Entrez le nom du fichier destination :\n" );
  20.    scanf("%s",nom3);
  21.    ouverture(fichier3,nom3,"w" );
  22.  
  23.    ecris(fichier1,fichier2);
  24.    
  25. }


Va falloir réviser un peu les pointeurs...


Message édité par Harkonnen le 26-08-2002 à 11:32:35

---------------
J'ai un string dans l'array (Paris Hilton)
n°201847
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 11:31:21  profilanswer
 

Harkonnen a écrit a écrit :

Code :
  1. void ouverture(FILE *fichier,char *nom,char *attribut)
  2. {
  3. if ((fichier = fopen(nom,attribut)) == NULL)
  4.         printf("ERREUR : impossible d'ouvrir le fichier %s .\n",nom);
  5.     else
  6.         printf("Fichier %s ouvert .\n",nom);
  7. }


 
 




 
nan

n°201848
Lenoiche
Posté le 26-08-2002 à 11:31:27  profilanswer
 

Harkonnen a écrit a écrit :

Code :
  1. void ouverture(FILE *fichier,char *nom,char *attribut)
  2. {
  3. if ((fichier = fopen(nom,attribut)) == NULL)
  4.         printf("ERREUR : impossible d'ouvrir le fichier %s .\n",nom);
  5.     else
  6.         printf("Fichier %s ouvert .\n",nom);
  7. }


 
 




 
le probleme  n est pas la , car l ouverture se passe comme il faut

n°201850
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-08-2002 à 11:33:21  profilanswer
 

J'ai édité ma réponse précédente pour corriger main()...


---------------
J'ai un string dans l'array (Paris Hilton)
n°201851
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 11:35:51  profilanswer
 

Harkonnen a écrit a écrit :

Code :
  1. FILE *fichier1, *fichier2, *fichier3;
  2. (...)
  3. void ouverture(FILE *fichier,char *nom,char *attribut)
  4. {
  5. if ((fichier = fopen(nom,attribut)) == NULL)
  6.         printf("ERREUR : impossible d'ouvrir le fichier %s .\n",nom);
  7.     else
  8.         printf("Fichier %s ouvert .\n",nom);
  9. }
  10. (...)
  11. main()
  12. {
  13.    printf("Entrez le nom du fichier source :\n" );
  14.    scanf("%s",nom1);
  15.    ouverture(fichier1,nom1,"r" );
  16.    printf("\n" );
  17.    
  18.    
  19.    printf("Entrez le nom du fichier destination :\n" );
  20.    scanf("%s",nom3);
  21.    ouverture(fichier3,nom3,"w" );
  22.  
  23.    ecris(fichier1,fichier2);
  24.    
  25. }


Va falloir réviser un peu les pointeurs...




 
non plus.
 
Voir phrase en gras :D


Message édité par LetoII le 26-08-2002 à 11:36:34
mood
Publicité
Posté le 26-08-2002 à 11:35:51  profilanswer
 

n°201856
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-08-2002 à 11:39:36  profilanswer
 

letoII a écrit a écrit :

 
 
non plus.
 
Voir phrase en gras :D




Elle est ou mon erreur ?  :??:


---------------
J'ai un string dans l'array (Paris Hilton)
n°201857
Lenoiche
Posté le 26-08-2002 à 11:42:48  profilanswer
 

Harkonnen a écrit a écrit :

J'ai édité ma réponse précédente pour corriger main()...




 
yeahhhhhhhhhh
 
je vois qu il n y a pas que moi ki ne s en sort pas avec els pointeurs !!!!
 
 
sinan j ai trouve mon erreur !!!!!
ecris(fichier1,fichier3)  
 
le fichier 2 je l avais ouvert en lecture seulement
halalalal que des fautes  d etourderies :D
 
en totu cas merci pour votre aide
:jap:

n°201860
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 11:44:00  profilanswer
 

Harkonnen a écrit a écrit :

 
Elle est ou mon erreur ?  :??:  




 
 
Ben tu affecte le résultat de la fonction fopen à une vairble locale. Si tu veux que le résultat soit dispo en dehor tu doit passer l'adresse de la variable devant recevoir le résultat (donc un FILE ** ) à la fonction. Hors là t'as mis un FILE*. Donc tu modifie la valeur passée à la fonctino mais tu ne change pas la valeur de la variable en dehors de la focntion.

n°201861
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 11:44:41  profilanswer
 

Lenoiche a écrit a écrit :

 
 
yeahhhhhhhhhh
 
je vois qu il n y a pas que moi ki ne s en sort pas avec els pointeurs !!!!
 
 
sinan j ai trouve mon erreur !!!!!
ecris(fichier1,fichier3)  
 
le fichier 2 je l avais ouvert en lecture seulement
halalalal que des fautes  d etourderies :D
 
en totu cas merci pour votre aide
:jap:




 
De rien :D

n°201865
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-08-2002 à 11:49:41  profilanswer
 

letoII a écrit a écrit :

 
 
 
Ben tu affecte le résultat de la fonction fopen à une vairble locale. Si tu veux que le résultat soit dispo en dehor tu doit passer l'adresse de la variable devant recevoir le résultat (donc un FILE ** ) à la fonction. Hors là t'as mis un FILE*. Donc tu modifie la valeur passée à la fonctino mais tu ne change pas la valeur de la variable en dehors de la focntion.




Ah merde, effectivement, le résultat de fopen est stocké dans fichier ! J'étais persuadé d'avoir lu fichier1, qui est une globale !
 
Quelle idée de donner des noms aussi semblables à des variables...  :sarcastic:


---------------
J'ai un string dans l'array (Paris Hilton)
n°201866
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 11:50:41  profilanswer
 

Harkonnen a écrit a écrit :

 
Ah merde, effectivement, le résultat de fopen est stocké dans fichier ! J'étais persuadé d'avoir lu fichier1, qui est une globale !
 
Quelle idée de donner des noms aussi semblables à des variables...  :sarcastic:  




 
HeHe :D

n°201870
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-08-2002 à 11:57:25  profilanswer
 

Y'a qd même un truc qui me chagrine :
 
fichier1 est un pointeur global vers un FILE, donc la mémoire est de toute façon réservée.
 
fichier1 est transmis en paramètre à la fonction ouverture :
 

Code :
  1. ouverture(fichier1,nom1,"r" );


 
cette zone de mémoire existe, donc la fonction ouverture suivante est correcte :  
 

Code :
  1. void ouverture(FILE *fichier,char *nom,char *attribut)
  2. {
  3. if ((fichier = fopen(nom,attribut)) == NULL)
  4.        printf("ERREUR : impossible d'ouvrir le fichier %s .\n",nom);
  5.    else
  6.        printf("Fichier %s ouvert .\n",nom);
  7. }


puisque l'argument fichier correspond à une zone mémoire allouée (fichier1)
 
corrigez moi si je me trompe, la reprise est dure  :sweat:  
   
 


---------------
J'ai un string dans l'array (Paris Hilton)
n°201871
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 12:00:58  profilanswer
 

Harkonnen a écrit a écrit :

Y'a qd même un truc qui me chagrine :
 
fichier1 est un pointeur global vers un FILE, donc la mémoire est de toute façon réservée.
 
fichier1 est transmis en paramètre à la fonction ouverture :
 

Code :
  1. ouverture(fichier1,nom1,"r" );


 
cette zone de mémoire existe, donc la fonction ouverture suivante est correcte :  
 

Code :
  1. void ouverture(FILE *fichier,char *nom,char *attribut)
  2. {
  3. if ((fichier = fopen(nom,attribut)) == NULL)
  4.        printf("ERREUR : impossible d'ouvrir le fichier %s .\n",nom);
  5.    else
  6.        printf("Fichier %s ouvert .\n",nom);
  7. }


puisque l'argument fichier correspond à une zone mémoire allouée (fichier1)
 
corrigez moi si je me trompe, la reprise est dure  :sweat:  
   
 
 




 
Ouai, mais vu que tu n'affecte pas directement fichiers1 dans ta fonction...
 
En fait tu as une variable locale qui a la même valeur que fichier1 et tu modifice cette variable, masi pas fichier1... tu vois le truc?

n°201872
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-08-2002 à 12:03:48  profilanswer
 

OK :jap:
 
Les joies du passage par référence ou par valeur... J'arrive encore à me faire avoir avec ça !
 
:hello:


---------------
J'ai un string dans l'array (Paris Hilton)
n°201932
LetoII
Le dormeur doit se réveiller
Posté le 26-08-2002 à 14:12:50  profilanswer
 

Harkonnen a écrit a écrit :

OK :jap:
 
Les joies du passage par référence ou par valeur... J'arrive encore à me faire avoir avec ça !
 
:hello:




 
hehe, c clair que le passage par référence c super :D


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

  Quelqu'un pourrais me dire ou est mon erreur ????

 

Sujets relatifs
Erreur SQL PHP, affreux !! C koi ???erreur de compil dans jbuilder7
oracle 8 sur debian, erreur : ORA-03113Méga pb avec VB!!! Erreur 429 incompréhensible!
Erreur serveur lors de l'upload de ma base MySQL[PHP] Erreur bizarre. Dois être facile à trouver je pense....
Erreur 430 automation ou interface non supporté ??[language C] je trouve pas mon erreur avec le switch
[PHP] erreur a la con besoin d'aide!ca veux dire koi ca ??
Plus de sujets relatifs à : Quelqu'un pourrais me dire ou est mon erreur ????


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