Rectifier programme
firk
-
mich62120 Messages postés 636 Statut Membre -
mich62120 Messages postés 636 Statut Membre -
Bonjour,
Je vous expose une partie de mon programme. Pouvez-vous m'indiquer comment insérer ma série de documents (de A à K) dans ma structure dossier?#include<stdio.h>
#include<stdlib.h>
struct dossier
{ char *A;char *B;char *C;
char *D;char *E;char *F;
char *G;char *H;char *I;
char *J;char *K;
};
char *statut[]={ "CDI hors période d'essai ou préavis de licenciement",
"CDD, CNE, ou CDI en période d'essai",
"Etudiant",
"TNS",
"Retraités et autres pensionnés",
"En place depuis 12 mois, sans incident de paiement"};
voici ma série de docs :
{ struct dossier D
{
A={"3 derniers bulletins de salaire"};
B={"2 derniers avis d'imposition sur le revenu"};
C={"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)"};
D={"Pensions ou allocations diverses"};
E={"Dernier décompte de la(les) caisse de retraite(s)"};
F={"Fiche de renseignements"};
G={"R.I.B, R.I.P ou R.I.C.E"};
H={"Pièce d'identité"};
I={"Carte d'étudiant"};
J={"Acte de Caution Solidaire"};
K={"Attestation d'assurance Habitation"};
}
};
void init_struct(dossier * D){ scanf("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s",&dossier.A,&dossier.B,&dossier.C,&dossier.D,&dossier.E,&dossier.F,&dossier.G,
&dossier.H,&dossier.I,&dossier.J,&dossier.K);
}
Je vous expose une partie de mon programme. Pouvez-vous m'indiquer comment insérer ma série de documents (de A à K) dans ma structure dossier?#include<stdio.h>
#include<stdlib.h>
struct dossier
{ char *A;char *B;char *C;
char *D;char *E;char *F;
char *G;char *H;char *I;
char *J;char *K;
};
char *statut[]={ "CDI hors période d'essai ou préavis de licenciement",
"CDD, CNE, ou CDI en période d'essai",
"Etudiant",
"TNS",
"Retraités et autres pensionnés",
"En place depuis 12 mois, sans incident de paiement"};
voici ma série de docs :
{ struct dossier D
{
A={"3 derniers bulletins de salaire"};
B={"2 derniers avis d'imposition sur le revenu"};
C={"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)"};
D={"Pensions ou allocations diverses"};
E={"Dernier décompte de la(les) caisse de retraite(s)"};
F={"Fiche de renseignements"};
G={"R.I.B, R.I.P ou R.I.C.E"};
H={"Pièce d'identité"};
I={"Carte d'étudiant"};
J={"Acte de Caution Solidaire"};
K={"Attestation d'assurance Habitation"};
}
};
void init_struct(dossier * D){ scanf("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s",&dossier.A,&dossier.B,&dossier.C,&dossier.D,&dossier.E,&dossier.F,&dossier.G,
&dossier.H,&dossier.I,&dossier.J,&dossier.K);
}
A voir également:
- Rectifier programme
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé - Guide
- Desinstaller un programme - Guide
- Mettre en veille un programme - Guide
15 réponses
je t'avoue que je suis un peu perdu dans ce que tu veux faire ! tant que tu n'arriveras pas a m'expliquer clairement ce que tu veux faire ...
firk
comme je l'ai dit à mich62120, je veux juste vérifier la composition du dossier de chaque type d'individu et voir s'ils ont tel ou tel document.(en établissant une liste des docs à fournir pour notre agence)
bonjour firk désolé pour le post de vendredi mais j'été parti en week end :)
tu veux mettre quoi exactement dans D.A ?
A={"3 derniers bulletins de salaire"};
ou ce que tu récupère dans le scanf ?
tu veux mettre quoi exactement dans D.A ?
A={"3 derniers bulletins de salaire"};
ou ce que tu récupère dans le scanf ?
oui mais tu veux stocker quoi exactement ?
quand tu feras printf(D.A); ca affichera quoi ?
3 derniers bulletins de salaire ou ce qu'il a rentrer dans le scanf ?
quand tu feras printf(D.A); ca affichera quoi ?
3 derniers bulletins de salaire ou ce qu'il a rentrer dans le scanf ?
ya un truc que j'arrive pas a comprendre c'est que tu init ton champ
A={"3 derniers bulletins de salaire"};
et que après tu fais un scanf dossier.A ( qui d'ailleurs ne veut rien dire ça serai plutôt scanf D.A )
scanf("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s",&dossier.A,&dossier.B,&dossier.C,&dossier.D,&dossier.E,&dossier.F,&dossier.G,
&dossier.H,&dossier.I,&dossier.J,&dossier.K);
A={"3 derniers bulletins de salaire"};
et que après tu fais un scanf dossier.A ( qui d'ailleurs ne veut rien dire ça serai plutôt scanf D.A )
scanf("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s",&dossier.A,&dossier.B,&dossier.C,&dossier.D,&dossier.E,&dossier.F,&dossier.G,
&dossier.H,&dossier.I,&dossier.J,&dossier.K);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
la console m'affiche les erreurs suivantes:
loc3.c:20: error: redefinition of ‘struct dossier’
loc3.c:21: error: expected specifier-qualifier-list before ‘A’
loc3.c:35: error: expected ‘)’ before ‘*’ token
loc3.c:20: error: redefinition of ‘struct dossier’
loc3.c:21: error: expected specifier-qualifier-list before ‘A’
loc3.c:35: error: expected ‘)’ before ‘*’ token
Salut,
C'est pour ça que je pensais la derniere fois qu'il voulait acceder a ses fichiers via la strucure.
Je suis vos conversations mais j'avoue que je ne comprende toujours pas grand chose:
Veux tu etre capable de dire quels documents à une personne avec la structure ou acceder à ces documents via la stucture
dossier.A n'est-il pas déjà un pointeur sur char?
Je ne suis pas sur qu'il faille un &.
Mich
C'est pour ça que je pensais la derniere fois qu'il voulait acceder a ses fichiers via la strucure.
Je suis vos conversations mais j'avoue que je ne comprende toujours pas grand chose:
Veux tu etre capable de dire quels documents à une personne avec la structure ou acceder à ces documents via la stucture
dossier.A n'est-il pas déjà un pointeur sur char?
Je ne suis pas sur qu'il faille un &.
Mich
pour le statut 1, ce sont les documents suivants : A, B,C,D,F,G,H,J,K.
pour le statut 2 : idem que statut 1.
pour le statut 3 : C,D,F,G,H,I,J,K.
pour le statut 4: B,C,D,F,G,H,J,K.
pour le statut 5 : A,B,D,E,F,G,H,,J,K.
pour le statut 6 : tous les docs.
Amoins de créer un tableau de chaines de caractères pour chaque statut, mais cela risque d'être un peu fastidieux!
pour le statut 2 : idem que statut 1.
pour le statut 3 : C,D,F,G,H,I,J,K.
pour le statut 4: B,C,D,F,G,H,J,K.
pour le statut 5 : A,B,D,E,F,G,H,,J,K.
pour le statut 6 : tous les docs.
Amoins de créer un tableau de chaines de caractères pour chaque statut, mais cela risque d'être un peu fastidieux!
declare ta structure comme ca
typedef struct dossier
{ char *A;char *B;char *C;
char *D;char *E;char *F;
char *G;char *H;char *I;
char *J;char *K;
};
comme ça après tu peux déclaré
dossier D;
et après remplir tes champ comme ceci
D.A="3 derniers bulletins de salaire";
D.B
....;
typedef struct dossier
{ char *A;char *B;char *C;
char *D;char *E;char *F;
char *G;char *H;char *I;
char *J;char *K;
};
comme ça après tu peux déclaré
dossier D;
et après remplir tes champ comme ceci
D.A="3 derniers bulletins de salaire";
D.B
....;
mais a quoi sert ca :
{ struct dossier D
{
A={"3 derniers bulletins de salaire"};
B={"2 derniers avis d'imposition sur le revenu"};
C={"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)"};
D={"Pensions ou allocations diverses"};
E={"Dernier décompte de la(les) caisse de retraite(s)"};
F={"Fiche de renseignements"};
G={"R.I.B, R.I.P ou R.I.C.E"};
H={"Pièce d'identité"};
I={"Carte d'étudiant"};
J={"Acte de Caution Solidaire"};
K={"Attestation d'assurance Habitation"};
}
};
???
{ struct dossier D
{
A={"3 derniers bulletins de salaire"};
B={"2 derniers avis d'imposition sur le revenu"};
C={"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)"};
D={"Pensions ou allocations diverses"};
E={"Dernier décompte de la(les) caisse de retraite(s)"};
F={"Fiche de renseignements"};
G={"R.I.B, R.I.P ou R.I.C.E"};
H={"Pièce d'identité"};
I={"Carte d'étudiant"};
J={"Acte de Caution Solidaire"};
K={"Attestation d'assurance Habitation"};
}
};
???
Il veut que chaque dossier contienne les pieces demandable a une personne selon son status.
Pour faire des formulaire peut etre non?
En fait si il n'est pas étudiant il n'a pas de carte etudiant et I=null;
Il pourra ensuite savoir ce qu'il a en parcourant le contenu des dossiers.
Mais pour cela ce n'était pas la peine de mettre des phrases dans la structure, cela complique les choses.
mich
Pour faire des formulaire peut etre non?
En fait si il n'est pas étudiant il n'a pas de carte etudiant et I=null;
Il pourra ensuite savoir ce qu'il a en parcourant le contenu des dossiers.
Mais pour cela ce n'était pas la peine de mettre des phrases dans la structure, cela complique les choses.
mich
oui voila ce que je ne comprend pas, tu fais juste un structure avec des int , si tu sais a quoi correspond chaque champ pas la peine de mettre des phrase tu met des int et si l'utilisateur en a il met combien et sinon il met rien et tu met null
typedef struct dossier
{int A;int B;int C .....
};
et apres tu fais
printf("bulletin de salaire");
scanf("%d",&dossier.A);
...
...
...
{int A;int B;int C .....
};
et apres tu fais
printf("bulletin de salaire");
scanf("%d",&dossier.A);
...
...
...
en appliquant ton conseil à la lettre, cad comme suit :
#include<stdio.h>
#include<stdlib.h>
char *statut[]={ "CDI hors période d'essai ou préavis de licenciement",
"CDD, CNE, ou CDI en période d'essai",
"Etudiant",
"TNS",
"Retraités et autres pensionnés",
"En place depuis 12 mois, sans incident de paiement"};
typedef void struct dossier
{ int A;int B;int C;int D;int E;int F;int G;int H;int I;int J;int K;
}
main(){
printf("3 derniers bulletins de salaire");scanf("%d",dossier.A);
printf("2 derniers avis d'imposition sur le revenu");scanf("%d",&dossier.B);
printf("Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)");scanf("%d",&dossier.C);
printf("Pensions ou allocations diverses");scanf("%d",&dossier.D);
printf("Dernier décompte de la(les) caisse de retraite(s)");scanf("%d",&dossier.E);
printf("Fiche de renseignements");scanf("%d",&dossier.F);
printf("R.I.B, R.I.P ou R.I.C.E");scanf("%d",&dossier.G);
printf("Pièce d'identité");scanf("%d",&dossier.H);
printf("Carte d'étudiant");scanf("%d",&dossier.I);
printf("Acte de Caution Solidaire");scanf("%d",&dossier.J);
printf("Attestation d'assurance Habitation");scanf("%d",&dossier.K);
}
J'obtiens à la console :
loc3.c:14: error: two or more data types in declaration specifiers
loc3.c:14: error: function definition declared ‘typedef’
loc3.c: In function ‘main’:
loc3.c:15: error: ‘dossier’ undeclared (first use in this function)
loc3.c:15: error: (Each undeclared identifier is reported only once
loc3.c:15: error: for each function it appears in.)
loc3.c:14: warning: return type of ‘main’ is not ‘int’
#include<stdio.h>
#include<stdlib.h>
char *statut[]={ "CDI hors période d'essai ou préavis de licenciement",
"CDD, CNE, ou CDI en période d'essai",
"Etudiant",
"TNS",
"Retraités et autres pensionnés",
"En place depuis 12 mois, sans incident de paiement"};
typedef void struct dossier
{ int A;int B;int C;int D;int E;int F;int G;int H;int I;int J;int K;
}
main(){
printf("3 derniers bulletins de salaire");scanf("%d",dossier.A);
printf("2 derniers avis d'imposition sur le revenu");scanf("%d",&dossier.B);
printf("Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)");scanf("%d",&dossier.C);
printf("Pensions ou allocations diverses");scanf("%d",&dossier.D);
printf("Dernier décompte de la(les) caisse de retraite(s)");scanf("%d",&dossier.E);
printf("Fiche de renseignements");scanf("%d",&dossier.F);
printf("R.I.B, R.I.P ou R.I.C.E");scanf("%d",&dossier.G);
printf("Pièce d'identité");scanf("%d",&dossier.H);
printf("Carte d'étudiant");scanf("%d",&dossier.I);
printf("Acte de Caution Solidaire");scanf("%d",&dossier.J);
printf("Attestation d'assurance Habitation");scanf("%d",&dossier.K);
}
J'obtiens à la console :
loc3.c:14: error: two or more data types in declaration specifiers
loc3.c:14: error: function definition declared ‘typedef’
loc3.c: In function ‘main’:
loc3.c:15: error: ‘dossier’ undeclared (first use in this function)
loc3.c:15: error: (Each undeclared identifier is reported only once
loc3.c:15: error: for each function it appears in.)
loc3.c:14: warning: return type of ‘main’ is not ‘int’
j'aurais plutot fait
#include<stdio.h>
#include<stdlib.h>
char *statut[]={ "CDI hors période d'essai ou préavis de licenciement",
"CDD, CNE, ou CDI en période d'essai",
"Etudiant",
"TNS",
"Retraités et autres pensionnés",
"En place depuis 12 mois, sans incident de paiement"};
typedef struct dossier
{
int A;
int B;
int C;
int D;
int E;
int F;
int G;
int H;
int I;
int J;
int K;
}
main(){
dossier d;
printf("3 derniers bulletins de salaire");scanf("%d",d.A);
printf("2 derniers avis d'imposition sur le revenu");scanf("%d",d.B);
printf("Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)");scanf("%d",d.C);
printf("Pensions ou allocations diverses");scanf("%d",&d.D);
printf("Dernier décompte de la(les) caisse de retraite(s)");scanf("%d",&d.E);
printf("Fiche de renseignements");scanf("%d",&d.F);
printf("R.I.B, R.I.P ou R.I.C.E");scanf("%d",&d.G);
printf("Pièce d'identité");scanf("%d",&d.H);
printf("Carte d'étudiant");scanf("%d",&d.I);
printf("Acte de Caution Solidaire");scanf("%d",&.J);
printf("Attestation d'assurance Habitation");scanf("%d",&.K);
}
#include<stdio.h>
#include<stdlib.h>
char *statut[]={ "CDI hors période d'essai ou préavis de licenciement",
"CDD, CNE, ou CDI en période d'essai",
"Etudiant",
"TNS",
"Retraités et autres pensionnés",
"En place depuis 12 mois, sans incident de paiement"};
typedef struct dossier
{
int A;
int B;
int C;
int D;
int E;
int F;
int G;
int H;
int I;
int J;
int K;
}
main(){
dossier d;
printf("3 derniers bulletins de salaire");scanf("%d",d.A);
printf("2 derniers avis d'imposition sur le revenu");scanf("%d",d.B);
printf("Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)");scanf("%d",d.C);
printf("Pensions ou allocations diverses");scanf("%d",&d.D);
printf("Dernier décompte de la(les) caisse de retraite(s)");scanf("%d",&d.E);
printf("Fiche de renseignements");scanf("%d",&d.F);
printf("R.I.B, R.I.P ou R.I.C.E");scanf("%d",&d.G);
printf("Pièce d'identité");scanf("%d",&d.H);
printf("Carte d'étudiant");scanf("%d",&d.I);
printf("Acte de Caution Solidaire");scanf("%d",&.J);
printf("Attestation d'assurance Habitation");scanf("%d",&.K);
}
J'ai essayé de faire un petit truc, il n'est pas testé il doit y avoir des erreurs mais si tu veux voir.
Le but est d'associer a la personne uniquement un chiffre a partir duquel on peut retrouver ses documents grace a une fonction docs_personne()
Le but est d'associer a la personne uniquement un chiffre a partir duquel on peut retrouver ses documents grace a une fonction docs_personne()
typedef struct
{int stat
char* nom; //faire une fonction pour le nom
}personne ;
enum statut {CDI_hors_ess_ou_preavis_lic,CDD_CNE_ou_CDI_essai,Etudiant,TNS,Retraités,12_mois_sans_incident_paiement}; //donne des valeurs allant de 0 à 5 aux différents status
//tableaux contenant les intitulés des documentschar* docs_possible[11]={
"3 derniers bulletins de salaire",
"2 derniers avis d'imposition sur le revenu",
"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)",
"Pensions ou allocations diverses",
"Dernier décompte de la(les) caisse de retraite(s)",
"Fiche de renseignements",
"R.I.B, R.I.P ou R.I.C.E",
"Pièce d'identité",
"Carte d'étudiant",
"Acte de Caution Solidaire",
"Attestation d'assurance Habitation"};
void init_personne(personne * p,int status){ //valeur correspondant au indice du tableau de docs dont on ne veut pas
switch(status){
case 0:p.status=48
case 1:p.status=48
case 2:p.status=401
case 3:p.status=084
case 4:p.status=28
case 5:p.status=000
}
void docs_personne(personne p){
int i,a,b,c;
//récupération des indices a ne pas afficher
a=p.status%10;
if(a==0){
b=0;c=0;}
else{
b=((p.status-a)/10)%10;
if(a==8) //si a = 8 pas besoin de c
c=12;
else
c=((p.status-10*b-a)/100)%10;
}
//affichage
printf("docs fournissables par la personne:\n")
for(i=0;i<11;i++)
if(i!=a&&i!=b&&i!=c)
printf("%s",docs_possible[i];
}
Merci pour ton conseil, le programme a l'air pas mal du tout.
Après quelques corrections, comme par exemple :
int status dans la structure, char*status,l'instruction break après chaque case.la main() avant docs_personne, l'adresse & lors du dernier printf, la déclaration de struct p et de status[6],
je n'arrive pas à exécuter le programme! (la compilation étant bonne)
Je suis bloqué actuellement.
Après quelques corrections, comme par exemple :
int status dans la structure, char*status,l'instruction break après chaque case.la main() avant docs_personne, l'adresse & lors du dernier printf, la déclaration de struct p et de status[6],
je n'arrive pas à exécuter le programme! (la compilation étant bonne)
Je suis bloqué actuellement.
Salut firk,
pour les break et le& tu as raison mais je ne comprend pas ou tu veux mettre le main();
il ne doit pas être avec docs personnes tu prendrex ce que j'ai fait dans un programme a part et le mettre en include dans ton main qui se servira de ces enum, struct et fonction.
De même je ne vois pas pourquoi tu veux declarer un status[6],et pourquoi tu veux mettre char* status.
Mich
pour les break et le& tu as raison mais je ne comprend pas ou tu veux mettre le main();
il ne doit pas être avec docs personnes tu prendrex ce que j'ai fait dans un programme a part et le mettre en include dans ton main qui se servira de ces enum, struct et fonction.
De même je ne vois pas pourquoi tu veux declarer un status[6],et pourquoi tu veux mettre char* status.
Mich
Je ne vois pas l'interet de tes changements.
int status en char* et tu perds le principe qui de garder le staus en un int.
Peut tu mettre le prog changé stp
Mich
int status en char* et tu perds le principe qui de garder le staus en un int.
Peut tu mettre le prog changé stp
Mich
Je te réèle le programme modifié :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main(){
typedef struct
{int status;
char* nom; //faire une fonction pour le nom
}personne ;
char *status[]= {"CDI_hors_ess_ou_preavis_lic,CDD_CNE_ou_CDI_essai,Etudiant,TNS,Retraités,douze_mois_sans_incident_paiement"};
//donne des valeurs allant de 0 à 5 aux différents status
//Tableaux contenant les intitulés des documents
char* docs_possible[11]={
"3 derniers bulletins de salaire",
"2 derniers avis d'imposition sur le revenu",
"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)",
"Pensions ou allocations diverses",
"Dernier décompte de la(les) caisse de retraite(s)",
"Fiche de renseignements",
"R.I.B, R.I.P ou R.I.C.E",
"Pièce d'identité",
"Carte d'étudiant",
"Acte de Caution Solidaire",
"Attestation d'assurance Habitation"};
void init_personne(personne p,int status){ //valeur correspondant au indice du tableau de docs dont on ne veut pas
switch(status){
case 0:printf("personne.status=48");break;
case 1:printf("personne.status=48");break;
case 2:printf("personne.status=401");break;
case 3:printf("personne.status=084");break;
case 4:printf("personne.status=28");break;
case 5:printf("personne.status=000");break;
}
}
void docs_personne(personne p){
int i,a,b,c;struct p;status[6];
//récupération des indices a ne pas afficher
a=(p.status)%10;
if(a==0){
b=0;c=0;}
else{
b=((p.status-a)/10)%10;
if(a==8) //si a = 8 pas besoin de c
c=12;
else
c=((p.status-10*b-a)/100)%10;
}
//affichage
printf("docs fournissables par la personne:\n");
for(i=0;i<11;i++)
{if(i!=a && i!=b && i!=c)
printf("%s",&docs_possible[i]);
}
}
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main(){
typedef struct
{int status;
char* nom; //faire une fonction pour le nom
}personne ;
char *status[]= {"CDI_hors_ess_ou_preavis_lic,CDD_CNE_ou_CDI_essai,Etudiant,TNS,Retraités,douze_mois_sans_incident_paiement"};
//donne des valeurs allant de 0 à 5 aux différents status
//Tableaux contenant les intitulés des documents
char* docs_possible[11]={
"3 derniers bulletins de salaire",
"2 derniers avis d'imposition sur le revenu",
"Contrat de travail ou Attestation d'employeur(datant de moins d'un mois)",
"Pensions ou allocations diverses",
"Dernier décompte de la(les) caisse de retraite(s)",
"Fiche de renseignements",
"R.I.B, R.I.P ou R.I.C.E",
"Pièce d'identité",
"Carte d'étudiant",
"Acte de Caution Solidaire",
"Attestation d'assurance Habitation"};
void init_personne(personne p,int status){ //valeur correspondant au indice du tableau de docs dont on ne veut pas
switch(status){
case 0:printf("personne.status=48");break;
case 1:printf("personne.status=48");break;
case 2:printf("personne.status=401");break;
case 3:printf("personne.status=084");break;
case 4:printf("personne.status=28");break;
case 5:printf("personne.status=000");break;
}
}
void docs_personne(personne p){
int i,a,b,c;struct p;status[6];
//récupération des indices a ne pas afficher
a=(p.status)%10;
if(a==0){
b=0;c=0;}
else{
b=((p.status-a)/10)%10;
if(a==8) //si a = 8 pas besoin de c
c=12;
else
c=((p.status-10*b-a)/100)%10;
}
//affichage
printf("docs fournissables par la personne:\n");
for(i=0;i<11;i++)
{if(i!=a && i!=b && i!=c)
printf("%s",&docs_possible[i]);
}
}
}
L'enum ne servait qu'à la lisibilté du prog pour quand tu utiliserai les fonctions dans le main si tu le mets pas ne le remplace pas par le tableau de char* qui ne sert à rien.
Ton main ne devrai pas englober la fonction init et il serait même plus judicieux de l faire a part;de faire un fichier..c avec le prog que tu as (doc.c) et faire ton main ailleurs
main.c::
J'ai vu que tu developper aussi de s fonctions pour nom addresse , je suppose qu'il t'en faut une pour recupérer le status (en interne donc c'est in int).
je te propose:
je ne suis pas sur du & et que l'on ne doive pas forcment passer la structure par un pointeur, renseigne toi la dessus si ca e marche pas.
Mich
Ton main ne devrai pas englober la fonction init et il serait même plus judicieux de l faire a part;de faire un fichier..c avec le prog que tu as (doc.c) et faire ton main ailleurs
main.c::
#include doc.c
main(){
...
J'ai vu que tu developper aussi de s fonctions pour nom addresse , je suppose qu'il t'en faut une pour recupérer le status (en interne donc c'est in int).
je te propose:
void set_status(personne p){
printf("choisir status:\n1-cdi.........\n"); //faire un menu pour donner les correspondance des nums et des status
scanf("%d",&p.status);
}
je ne suis pas sur du & et que l'on ne doive pas forcment passer la structure par un pointeur, renseigne toi la dessus si ca e marche pas.
Mich
je ne suis pas sur du & et que l'on ne doive pas forcment passer la structure par un pointeur, renseigne toi la dessus si ca e marche pas.
de quel & veux-tu parler?
au niveau de la fonction adresse, je voudrais afficher comme ce qui suit :
aaaaa bbb, bbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaa bbbbbbbbbbbbbbbbbbbbbb
a désigne un nombre, b une lettre.
mes fonctions nom, prénom, adresse me donnent des problèmes au niveau de la compilation.
char nom(int i, char N[])
{ for(i=0; i<30;i++)
scanf("%s", &N[i]);
}
char prénom(int j, char P[])
{ for(j=0;j<20;j++)
scanf("%s", &P[j]);
}
char adresslot(int argc, char *argv[])
{ int j;scanf("%s", argv[j]);scanf("%d", &argc[j]);
while(argc<6)
argv[j]=atoi(*argc);
if(argc==6)
printf(" ");
while(argc>6)
argc=strcpy(*argv[j]);
}
char adressprop(int argc1, char *argv1[])
{ int i;scanf("%s", &argv1[i]);scanf("%d",&argc1);
while(argc1<6)
argv1[i]=atoi(*argc1);
if(argc1==6)
printf(" ");
while(argc1>6)
argc1=strcpy(*argv1[i]);
de quel & veux-tu parler?
au niveau de la fonction adresse, je voudrais afficher comme ce qui suit :
aaaaa bbb, bbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaa bbbbbbbbbbbbbbbbbbbbbb
a désigne un nombre, b une lettre.
mes fonctions nom, prénom, adresse me donnent des problèmes au niveau de la compilation.
char nom(int i, char N[])
{ for(i=0; i<30;i++)
scanf("%s", &N[i]);
}
char prénom(int j, char P[])
{ for(j=0;j<20;j++)
scanf("%s", &P[j]);
}
char adresslot(int argc, char *argv[])
{ int j;scanf("%s", argv[j]);scanf("%d", &argc[j]);
while(argc<6)
argv[j]=atoi(*argc);
if(argc==6)
printf(" ");
while(argc>6)
argc=strcpy(*argv[j]);
}
char adressprop(int argc1, char *argv1[])
{ int i;scanf("%s", &argv1[i]);scanf("%d",&argc1);
while(argc1<6)
argv1[i]=atoi(*argc1);
if(argc1==6)
printf(" ");
while(argc1>6)
argc1=strcpy(*argv1[i]);
Je parlais du & du dernier scanf mais je pense que c'est bon, ce que je suis pas sur c'est si on doit passer en argument :
personne p ou personne* p car je ne sais pas p et déjà un pointeur ou si il sera uniquement recopier comme argument et donc que les traitements dans la fonction n'aurait aucun effet.
Pour les autres fonctions je vais regarder tout a l'heure, dsl mais je n'ai pas le temps tout de suite.
personne p ou personne* p car je ne sais pas p et déjà un pointeur ou si il sera uniquement recopier comme argument et donc que les traitements dans la fonction n'aurait aucun effet.
Pour les autres fonctions je vais regarder tout a l'heure, dsl mais je n'ai pas le temps tout de suite.
Salut firk,
Désolé de ne pas être revenu avant mais je n'avais pas le temps de voir pour ton code.
Je m'y suis mis un peu ce matin et je suis tombé sur ce topic qui pourrait t'interresser.
On y trouve une méthode qui demande nom, prénom et tel et le mets dans un fichier .dat .
Il ne te resterai plus qu'à changer grossièrement pour te l'adapter.
Il reste encore le problème de l'adresse que je vais essayer de voir après.
Mich
Désolé de ne pas être revenu avant mais je n'avais pas le temps de voir pour ton code.
Je m'y suis mis un peu ce matin et je suis tombé sur ce topic qui pourrait t'interresser.
On y trouve une méthode qui demande nom, prénom et tel et le mets dans un fichier .dat .
Il ne te resterai plus qu'à changer grossièrement pour te l'adapter.
Il reste encore le problème de l'adresse que je vais essayer de voir après.
Mich