Ptobléme de programmation en langage C
madavekia
-
madavekia -
madavekia -
Bonjour,
j'ai écris un tout petit programme tres tres modéste en langage C pour un un TP,mais je bute incésement sur un probléme récurent lors de la compilation, les probléme concernent la bibliothéque <conio> et aussi l'include, je vous serez vraiment reconnaissent de m'aider a regler le probléme , voici le code du programme
#include <stdio.h>
#include <conio.h>
typedef struct
{int C;
char TIT[30];
char AU[25];
int AD;
}livre ;
livre T[100];
void saisie(void)
{
int I ;
char rep ;
printf("entrez les infos du tableau");
rep ='o' ;
I = 1 ;
do
{
scanf("%d,%s,%s,%d",&T[I].C ,T[I].TIT ,T[I].AU ,&T[I].AD);
printf("est-ce que vous avez un autre livre?(O/N)");
rep = getch () ;
++I;
while ( (I<=100) && ((rep=='o') || (rep=='O')) );
}
void edition (int M )
{
printf("entrez l'année d'édition svp");
scanf("%d",&M);
for(int I=1, I<=100, ++I)
{
if T[I].AD=M
printf("%s,%s",T[I].TIT ,T[I].AU);
}
}
void ajout(void)
{
int I ;
int N ;
char rep ;
printf("entrez les informations du nouveau tableau");
I=1;
rep="O";
do
{
scanf("%d,%s,%s,%d",&T[I].C ,T[I].TIT ,T[I].AU ,&T[I].AD);
++I;
printf("est-ce-vous avez un autre livre?(O/N)");
rep = getch () ;
while((rep=='o')||(rep=='O')) && (I<= N);
}
}
void perte(void)
{
int num; livre Tab[20];
printf("entrez le code du livre perdu svp");
scanf("%d",&num);
for(int I=1 ,I<=100 ,++I);
{
if T[I].C=num
Tab[I]=T[I];
}
}
void total(void)
{
int AN;
int K;
printf("entrez l'ann‚e dont vous voulez calculer le total");
scanf("%d",&AN);
for(int I=1 ,I<=100 ,++I);
{
if T[I].AD=AN
K++;
}
printf("le nombre total des livres est %d",K);
}
main()
{
clnscr()
int C;
printf("veuillez entrer votre choix");
printf(0-saisie);
printf(1-edition);
printf(2-perte de livre);
printf(3-ajout de livre);
printf(4-total)
scanf("%d",&C);
switch C
{
case 0:saisie() ;
break ;
case 1:edition(M);
break;
case 2:perte();
break;
case 3:ajout();
break;
case 4:total();
break;
default printf("erreur");
}
}
je vous recerie d'avance.
j'ai écris un tout petit programme tres tres modéste en langage C pour un un TP,mais je bute incésement sur un probléme récurent lors de la compilation, les probléme concernent la bibliothéque <conio> et aussi l'include, je vous serez vraiment reconnaissent de m'aider a regler le probléme , voici le code du programme
#include <stdio.h>
#include <conio.h>
typedef struct
{int C;
char TIT[30];
char AU[25];
int AD;
}livre ;
livre T[100];
void saisie(void)
{
int I ;
char rep ;
printf("entrez les infos du tableau");
rep ='o' ;
I = 1 ;
do
{
scanf("%d,%s,%s,%d",&T[I].C ,T[I].TIT ,T[I].AU ,&T[I].AD);
printf("est-ce que vous avez un autre livre?(O/N)");
rep = getch () ;
++I;
while ( (I<=100) && ((rep=='o') || (rep=='O')) );
}
void edition (int M )
{
printf("entrez l'année d'édition svp");
scanf("%d",&M);
for(int I=1, I<=100, ++I)
{
if T[I].AD=M
printf("%s,%s",T[I].TIT ,T[I].AU);
}
}
void ajout(void)
{
int I ;
int N ;
char rep ;
printf("entrez les informations du nouveau tableau");
I=1;
rep="O";
do
{
scanf("%d,%s,%s,%d",&T[I].C ,T[I].TIT ,T[I].AU ,&T[I].AD);
++I;
printf("est-ce-vous avez un autre livre?(O/N)");
rep = getch () ;
while((rep=='o')||(rep=='O')) && (I<= N);
}
}
void perte(void)
{
int num; livre Tab[20];
printf("entrez le code du livre perdu svp");
scanf("%d",&num);
for(int I=1 ,I<=100 ,++I);
{
if T[I].C=num
Tab[I]=T[I];
}
}
void total(void)
{
int AN;
int K;
printf("entrez l'ann‚e dont vous voulez calculer le total");
scanf("%d",&AN);
for(int I=1 ,I<=100 ,++I);
{
if T[I].AD=AN
K++;
}
printf("le nombre total des livres est %d",K);
}
main()
{
clnscr()
int C;
printf("veuillez entrer votre choix");
printf(0-saisie);
printf(1-edition);
printf(2-perte de livre);
printf(3-ajout de livre);
printf(4-total)
scanf("%d",&C);
switch C
{
case 0:saisie() ;
break ;
case 1:edition(M);
break;
case 2:perte();
break;
case 3:ajout();
break;
case 4:total();
break;
default printf("erreur");
}
}
je vous recerie d'avance.
A voir également:
- Ptobléme de programmation en langage C
- Langage ascii - Guide
- Application de programmation - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Mettre en veille un programme - Guide
2 réponses
Salut,
Attention, conio.h ce n'est pas portable. Essaie d'éviter de l'utiliser autant que possible.
A la place de getch(), getchar() suffira.
Attention, à ton scanf. Tu utilises "%s, %s" ce qui n'est pas compatible étant donné que la virgule est un caractère. Donc problème.
Le mieux est de le faire par ligne. Par exemple :
Ou encore mieux, utilise fgets().
Lorsque tu utilises un getchar() ou compagnie, n'oublie pas de vider le buffer clavier avec : while(getchar()!='\n');
Sinon tu risques d'avoir des petites surprises dans certains cas ;).
Et enfin, le prototype de main() est int main(void) et non void main(void) et n'oublie pas le return 0; final.
J'espère que ça marchera mieux. Tiens nous au courant, en postant la nouvelle version et en l'incluant dans des balises codes (à droite du bouton souligner) pour garder l'indentation.
Cdlt
Attention, conio.h ce n'est pas portable. Essaie d'éviter de l'utiliser autant que possible.
A la place de getch(), getchar() suffira.
Attention, à ton scanf. Tu utilises "%s, %s" ce qui n'est pas compatible étant donné que la virgule est un caractère. Donc problème.
Le mieux est de le faire par ligne. Par exemple :
char chaine[31]; scanf("%30s",chaine);
Ou encore mieux, utilise fgets().
Lorsque tu utilises un getchar() ou compagnie, n'oublie pas de vider le buffer clavier avec : while(getchar()!='\n');
Sinon tu risques d'avoir des petites surprises dans certains cas ;).
Et enfin, le prototype de main() est int main(void) et non void main(void) et n'oublie pas le return 0; final.
J'espère que ça marchera mieux. Tiens nous au courant, en postant la nouvelle version et en l'incluant dans des balises codes (à droite du bouton souligner) pour garder l'indentation.
Cdlt