cs_oceane67
Messages postés50Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention21 juin 2004
-
17 avril 2004 à 10:58
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
17 avril 2004 à 15:04
bonjour, c'est encore moi, je n'arrive decidement pas a trouver pourquoi mon programme n'enregistre pas dans les fichiers, c'est la grosse panique, desole mon programme est long, mais j'ai vraiment besoin d'aide merci.
#include<conio.h>
#include<stdio.h>
#include
#include<string.h>
#define max 19
#define max2 51
typedef struct
{
int no;
char nom[20];
int nbpers;
int appro;
}Tenrfamilles;
Tenrfamilles Tfamilles[20];
int Tcheques[max2][max];
int bungalow[20];
int i,enr,j ;
char res;
void main()
{ j=0;
// chargement();
initialiser();
int choix;
do
{
cout<<"\n Gestion des comptes cheques club.";
cout<<"\n 1- saisir la liste des nouvelles familles.";
cout<<"\n 2- saisir un approvisionnement de compte." ;
cout<<"\n 3- Saisir les cheques emis de la journee.";
cout<<"\n 4- lister les familles dont le solde est negatif." ;
cout<<"\n 5- lister le releve de compte d'une famille" ;
cout<<"\n 6- sauvegarder les donnees sur le disque.";
cout<<"\n 7- enregistrer les departs";
cout<<"\n 0 quitter le programme." ;
cout<<"\n votre choix ?";
cin>>choix;
switch(choix)
{case 1:nouvellesfamilles();
break;
case 2:approvisionnement();
break;
case 3:chequesemis();
break;
case 4:solde();
break;
case 5:releve();
break;
case 6:enregistrement();
break;
case 7: depart();
break;
}
} while(choix!=0);
if (enr==0)
{
cout<<"\n vous n'avez pas enregistre vos modifications,souhaitez vous le faire?(O/N)";
cin>>res;
if(res==0)
{
enregistrement();
}
cout<<"\n au revoir";
}
getch();
}
/* option 1*/
void nouvellesfamilles()
{
int nb;
char rep;
rep='o';
nb=1;
i=0;
while( rep=='o')
{
/** on verifie que le bungalow est vide **/
while(i==1)
{ cout<<" rentre dans la boucle";
nb++;
if(Tfamilles[nb].nom == " ")
{
i=1;
}
}
if(nb>=max)
{
cout<<"\n le village vacances est complet, vous ne pouvez plus rajouter de famille.";
cout<<"\n ";
rep='n';
}
else
{
cout<< "\n bungalow no "<< nb;
cout<<"\n entrer le nom:";
cin>>Tfamilles[nb].nom;
cout<<"\n entrer le nombre de personnes:";
cin>>Tfamilles[nb].nbpers;
nb=nb++;
cout<<"\n voulez vous entrer une autre famille?(o/n)" ;
cin>> rep;
}
}
enr=0 ;
}
/* Option 2*/
void approvisionnement()
{int mont,i,r;
char rep[20];
char res,res2;
do
{
i=1;
do
{
cout<<"\n entrer le nom:";
cin>>rep;
do
{ if (strcmp(Tfamilles[i].nom, rep)==0)
{
do
{
cout<<" bungalow numero "<>mont;
cout<<"\n etes vous sur du montant?(O/N):";
cin>>res;
}
while ( res=='n');
}
else
{ cout<< "\n ce nom ne correspond a aucun bungalow." ;
}
i=i+1;
}
while(strcmp(Tfamilles[i].nom, rep)==0 && i<=max);
}
while (strcmp(Tfamilles[i].nom, rep)==1);
Tfamilles[i-1].appro=Tfamilles[i-1].appro+ mont;
cout<<"voulez vous entrer un autre approvisionnement?(O/N):";
cin>> res2;
}while(res2=='o');
enr=0 ;
cout<< Tfamilles[i-1].appro ;
}
/* Option 3 */
void chequesemis()
{
i=1;
j=0;
cout<<Tfamilles[i].appro ;
cout<<"\n lorsque la saisie est terminee ,taper 0 dans le no de bungalow";
do
{
cout<<"\n entrer le no de bungalow:";
cin>>i;
// verification des cheques existants//
do
{
j++;
cout<<"\n ordre numéro:"<<j;
cout<<"\n sommes: "<<Tcheques[i][j];
}
while(Tcheques[i][j]!=0);
if(i!=0)
{
cout<<"\n cheque no: ";
cout<<j;
cout<<"\n entrer le montant du cheque:";
cin>>Tcheques[i][j];
Tfamilles[i].appro= Tfamilles[i].appro -Tcheques[i][j];
cout<< Tfamilles[i].appro ;
}
}
while ( i!=0);
enr=0;
}
/* Option 4 */
void solde()
{
int i,pos;
i=1;
pos=1;
do
{
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 17 avril 2004 à 11:18
Tu as fais du pas-à-pas ?,Est-ce-que tu as essaye de faire juste un fprintf normal qui ne soit pas dans un boucle et juste apres avoir fais ton fopen, d'ailleurs il serait preferable de l'ouvrir en "wt" pour specifie que c'est du texte (et non en "w"). Essaye d'isole en faisant un exemple simple :
FILE *f;
f = fopen("familles.dat","wt");
fprintf(f,"teste, pi=%lf",3.1415926535);
fclose(f);
cs_oceane67
Messages postés50Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention21 juin 2004 17 avril 2004 à 12:02
honnetement on m'a appris le c et le c++ en meme temps et du coup je confond les deux.
pour le fichier f j'ai essaye et il reste quand meme vide.je comprend pas.
cs_JCDjcd
Messages postés1138Date d'inscriptionmardi 10 juin 2003StatutMembreDernière intervention25 janvier 20094 17 avril 2004 à 14:03
alors dans ce cas la c'est tres simple :
tu fais un nouveau projet et tu mais un main tres simple, tu fais fopen,fprintf,fclose, et c'est tout, tu appelle que ces trois fonctions, ca marche toujours pas ?
cs_oceane67
Messages postés50Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention21 juin 2004 17 avril 2004 à 14:42
j'ai essaye avec visual c++ et ça marche!!
je me prend la tete depuis des semaines alors que ça vient de l'editeur!merci beaucoup
le soulagement!
bisous et encore merci
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 17 avril 2004 à 15:04
oui mais la c'est du c, et pour le c++ oui on peut se servir de fonction c vu que les 2 languages sont compatible mais n'oublie pas qu'il est standardiser et que certain compilo ca passe pas sur