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

  FORUM HardWare.fr
  Programmation
  C++

  [C] j'ai un probleme pour écrire dans un fichier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] j'ai un probleme pour écrire dans un fichier

n°382431
airseb
Posté le 05-05-2003 à 10:56:51  profilanswer
 

je n'ai pas d'erreurs a la compilation mais j'en ai a l'execution au moment où le programme doit écrire dans le fichier, là j'ai un "access violation".
Je n'ai pas le message "voulez vous refaire un choix"
savez vous d'où vient l'erreur ?(mis a part que c du C et C++ mélangé)
voici le code :

Code :
  1. #include <iostream.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4. //#include <fstream.h>
  5. struct donnees_voiture
  6. {
  7. char marque[50] ;
  8.    char type [50];
  9.    char immatriculation[50];
  10.    int nb_chevaux ;
  11.    char energie[25] ;
  12.    char date_de_mise_en_circulation[10] ;
  13.    int consommation_au_litre ;
  14.    char nom_utilisateur[50];
  15.    char prenom_utilisateur[50];
  16.    char date_de_possession[20] ;
  17.    int nb_km_parcourus ;
  18.    char date_proch_controle_technic[20];
  19.    int kilometrage_actuel ;
  20.    float prix_L ;
  21.    char date_fact[20] ;
  22.    float montant_fact ;
  23. };
  24. int i=0 ;
  25. FILE *fichier ;
  26. void fact_essence_diesel ()
  27. {
  28.    donnees_voiture fact1[10] ;
  29. cout<<"veuillez saisir la marque du vehicule puis son type,";
  30.    cin>>fact1[i].marque>>fact1[i].type ;
  31.    cout<<"son n°d'immatriculation, son nombre de chevaux, son energie, ";
  32.    cin>>fact1[i].immatriculation>>fact1[i].nb_chevaux>>fact1[i].energie ;
  33.    cout<<"sa date de mise en circulation, sa consommation en litre ";
  34.    cin>>fact1[i].date_de_mise_en_circulation>>fact1[i].consommation_au_litre;
  35.    cout<<"le nom de l'utilisateur, puis son prenom, la date de possession du vehicule,";
  36.    cin>>fact1[i].nom_utilisateur>> fact1[i].prenom_utilisateur>>fact1[i].date_de_possession;
  37.    cout<<"le nombre de km qu'il a parcouru, la date du prochain controle technique,";
  38.    cin>>fact1[i].nb_km_parcourus>>fact1[i].date_proch_controle_technic;
  39.    cout<<" le kilometrage actuel du véhicule, ";
  40.    cin>>fact1[i].kilometrage_actuel;
  41.    cout<<"le prix du litre, la date de la facture"<<endl ;
  42.    cin >>fact1[i].prix_L>>fact1[i].date_fact;
  43.    fact1[i].montant_fact=(fact1[i].kilometrage_actuel-fact1[i].nb_km_parcourus)*
  44.           fact1[i].prix_L ;
  45.    cout<<"le montant de la facture est de "<< fact1[i].montant_fact<<endl ;
  46.    fprintf(fichier, "%s%s%s%d%s%s%d%s%s%s%d%s%d%f%s%f",fact1[i].marque,
  47.       fact1[i].type, fact1[i].immatriculation, fact1[i].nb_chevaux,
  48.             fact1[i].energie, fact1[i].date_de_mise_en_circulation,
  49.             fact1[i].consommation_au_litre, fact1[i].nom_utilisateur,
  50.             fact1[i].prenom_utilisateur, fact1[i].date_de_possession,
  51.             fact1[i].nb_km_parcourus, fact1[i].date_proch_controle_technic,
  52.             fact1[i].kilometrage_actuel, fact1[i].prix_L, fact1[i].date_fact,
  53.             fact1[i].montant_fact);
  54.    i++ ;
  55. }
  56. void main ()
  57. {
  58. char reponse ;
  59.    int j=0 ;
  60.    int choix ;
  61.    fichier=fopen("c:\fichier1.dat","w" );
  62.    //ofstream fichier ("c:\fichier1.dat" ) ;
  63. do
  64. {
  65.  cout<<"menu général"<<endl ;
  66.     cout<<"1)Saisie d'une facture d'essence ou de diesel"<<endl ;
  67.     cout<<"2)Saisie d'une facture de garage "<<endl ;
  68.     cout<<"3)Bilan d'un véhicule "<<endl ;
  69.     cout<<"autre)Quitter "<<endl ;
  70.     cin>>choix ;
  71.     switch (choix)
  72.     {
  73.      case 1 : fact_essence_diesel ();
  74.           break ;
  75.        case 2 : //fact_garage ();
  76.           break ;
  77.   case 3 : //bilan ()
  78.           break ;
  79.        default : return ;
  80.     }
  81.       if (j==10)
  82.      {
  83.        reponse='n';
  84.      }
  85.      else
  86.      {
  87.        cout<<"voulez vous refaire un choix (o/n)"<<endl ;
  88.        cin>>reponse ;
  89.          j++ ;
  90.      }
  91.     }
  92.     while (reponse == 'o');
  93.     fclose (fichier) ;
  94.     getch () ;
  95. }


Message édité par airseb le 05-05-2003 à 10:57:25
mood
Publicité
Posté le 05-05-2003 à 10:56:51  profilanswer
 

n°382433
chrisbk
-
Posté le 05-05-2003 à 10:58:52  profilanswer
 

houla
heuh bon, deja si taz passe t bon pour te faire sonner les cloches [:ddr555]
 
 
ensuite fodra que t'apprennes a te servir d'un debuggueur histoire de voir ou ca plante (la perso g pas envie d'eplucher ton code...)
 
edit :
ah tiens [:dawa]
fichier=fopen("c:\fichier1.dat","w" );
fo deux \\ :p
fo tester ses pointeurs mon petit :O


Message édité par chrisbk le 05-05-2003 à 10:59:56
n°382436
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 05-05-2003 à 11:00:56  profilanswer
 

EDIT : bon ba grillaid par chris :D


Message édité par Taiche le 05-05-2003 à 11:01:47

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°382438
chrisbk
-
Posté le 05-05-2003 à 11:01:48  profilanswer
 

Taiche a écrit :

Bin moi j'dirais que c'est normal que ça pète vu que ton FILE* tu les déclares mais tu l'initialises pas... :sarcastic:  


 
chichi : fichier=fopen("c:\fichier1.dat","w" );
 

n°382439
harrysauce
Miaaaooou!
Posté le 05-05-2003 à 11:02:29  profilanswer
 

place des bouchons (affiche ce que tu veux a l'ecran, ou fais des MessageBox) pour voir exactement ou ca plante (ton bouchon s'affiche => l'erreur est apres le bouchon, il ne s'affiche pas => l'erreur est avant le bouchon.....

n°382442
airseb
Posté le 05-05-2003 à 11:04:57  profilanswer
 

chrisbk a écrit :

houla
heuh bon, deja si taz passe t bon pour te faire sonner les cloches [:ddr555]
 
 
ensuite fodra que t'apprennes a te servir d'un debuggueur histoire de voir ou ca plante (la perso g pas envie d'eplucher ton code...)
 
edit :
ah tiens [:dawa]
fichier=fopen("c:\fichier1.dat","w" );
fo deux \\ :p
fo tester ses pointeurs mon petit :O


 
merci  :D

n°382469
Taz
bisounours-codeur
Posté le 05-05-2003 à 11:17:16  profilanswer
 

vive le C les mecs

n°382512
theshockwa​ve
I work at a firm named Koslow
Posté le 05-05-2003 à 11:39:27  profilanswer
 

++Taz a écrit :

vive le C les mecs


 
merde, ca y est, il est la ! :D
 
 
:P
:D


---------------
last.fm
n°382576
Taz
bisounours-codeur
Posté le 05-05-2003 à 13:20:37  profilanswer
 

ben c pour vous. les des grands apports de c++, c'est sa bibliotheque de/sn ultra-simple. apres ça, vous persévérer à utilser stdio et vous vous etonnez d'avoir des problèmes


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

  [C] j'ai un probleme pour écrire dans un fichier

 

Sujets relatifs
"Error 155" Problème.. au secours :-)Problème d'accents et de couleurs
[JS-HTML] Problème de variable...Problème avec un KeyListener
ecrire et lire dans un fichier en visual basic 6 ?Enregistrer une extension de fichier auprès de Microsoft ?
probleme de despecialisationAjouter une chaine au début d'un fichier
Fichier Batch : comment insérer des balises ? [Pb résolu] 
Plus de sujets relatifs à : [C] j'ai un probleme pour écrire dans un fichier


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