1 pièce(s) jointe(s)
boucle qui cause la perte d'une instruction
bon mon programme fait la construction d'un article (enregistrement ) à partir des données lues (le nom, le prénom, l'age, la ville et les compétences d'un employé)tel que
- le nom : chaine de taille fixe
- le prénom : chaine de taille fixe
- la ville : chaine de taille fixe
- les compétences : une chaine de taille variable
l'age est un entier que l'on doit convertir en chaine pour le concaténer ensuite avec les chaines précédemment lues et concaténées
exemple : article ="samibidonfrance21programmation"
bon problème est lorsque j'ai plusieurs articles à construire, quand je rentre dans la boucle, je lis les premières données nécessaire pour construire le premier article. Après lorsque je viens rentrer les données pour le deuxième article, il saute le nom et il demande d'entrer le prénom directement alors que l'on doit entrer le nom, après le prénom comme pour le premier article (il saute l’instruction à partir de la deuxième itération :'(
et voici mon programme stp c urgent aidez moi :(
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max_char 1024
char *recup_article()
{
///clé(sur 6 caractères)+taille(sur 3 char) + supprimé(1 seul char )+ info=type_tr(20 char)+type_imo(20 char)+ ville(sur 20 char)+ prix(20 char) + desciption(taille variable)
int i,rec,rep;
char type_immo[20];
char type_tran[20];
char vile[20];
char prix_ch[20];
char recupi[max_char];
char *desc= malloc (sizeof (*desc) * 256),*recup4= malloc (sizeof (*recup4) * 256);
int prix;
int c,i1 = 0;
char s[max_char];
printf("\n entrez le type de l'immobilier ");
gets(type_immo);
printf("\n entrer le type de trns ");
gets(type_tran);
printf("\n entrer la ville ");
gets(vile);
printf("\n entrer le prix ");
scanf("\n %d",&prix);
sprintf(prix_ch,"%d",prix);
printf("\n entrer la description de votre fichier ");
c = getchar() ;
while((c=getchar()) != EOF && c != '$')
{
s[i1] = c;
i1++;
}
s[i1] = '\0';
strcpy(desc,s);
printf ("%s",s);
printf(" la description %s",desc);
printf("\n la description de votre fichier est %s ",desc);
i = strlen(desc);
printf ("la longueur de la description est %d",i);
strcpy(recupi,type_immo);
strcat(recupi,"#");
strcat(recupi,type_tran);
strcat(recupi,"#");
strcat(recupi,vile);
strcat(recupi,"#");
recup4 = strcat(recupi,prix_ch);
strcat(recupi,"#");
strcat(recupi,desc);
printf("\n votre article est alors :%s ",recupi);
return recupi;
}
int main()
{
char nam[20];
char mod;
int f;
char *recuper= malloc (sizeof (*recuper));
for (f=0;f<2;f++)
{
recuper = recup_article();
printf("\n la taille de l'article %d\n",strlen(recuper));
}
return 0;
} |