Comment peut-on utiliser l'instruction "fwrite" and "fread"
boudjelloulimane
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
boudjelloulimane Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
boudjelloulimane Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
bonsoir tout le monde ,j'ai fais un programme en langage C en utilisant les fichier ce programme sert a calculer la moyenne de n étudiants et les remis dans un fichier selon un relevé .J'ai traité ce programme en utilisant le #fprintf mais je veux le refaire avec le #fwrite et #fread si qelq'un de vous connais la méthode svp g besoin d'une solution .....
mrc d'avance
voici mon programme:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct etudiant etudiant;
struct etudiant
{
float td[100],tp[100],ex[100],rtp[100],moy1[100],moy2[100];
char nom[100][100],prenom[100][100],mat[100][100];
};
etudiant etd;
int n,i;
void creer(){
printf("donner le nombre d'etudiants\t_");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\nl'etudiant N %d :\n",i+1);
printf("\ndonner le nom:\t");
scanf("%s",etd.nom[i]);
printf("\ndonner le prenom:\t");
scanf("%s",etd.prenom[i]);
printf("\ndonner le matricule:\t");
scanf("%s",etd.mat[i]);
printf("donner la note de td:\t");
scanf("%f",&etd.td[i]);
while(etd.td[i]<0 || etd.td[i]>20){
printf("donner la note de td:\t");
scanf("%f",&etd.td[i]); }
printf("donnez la note du tp: \t");
scanf("%f",&etd.tp[i]);
while(etd.tp[i]<0 || etd.tp[i]>20){
printf("donner la note de tp:\t");
scanf("%f",&etd.tp[i]); }
printf("donnez la la note de l'examen:\t");
scanf("%f",&etd.ex[i]);
while(etd.ex[i]<0 || etd.ex[i]>20){
printf("donner la note de examen:\t");
scanf("%f",&etd.ex[i]); }
if(etd.ex[i]<10){
printf("donnez la note de ratrapage:\t");
scanf("%f",&etd.rtp[i]);
while(etd.rtp[i]<0 || etd.rtp[i]>20){
printf("donner la note de ratrapage:\t");
scanf("%f",&etd.rtp[i]);
}
}
}
}
void moy(){
for(i=0;i<n;i++){
etd.moy1[i]=((((etd.td[i]+etd.tp[i])/2)+(etd.ex[i]*2))/3);
if(etd.ex[i]<10)
etd.moy2[i]=((((etd.td[i]+etd.tp[i])/2)+(etd.rtp[i]*2))/3);
else etd.moy2[i]=etd.moy1[i];
}
}
void fichier(){
FILE* p=NULL;
p=fopen("G:\\etudiant.txt","w");
if(p!=NULL)
{
fprintf(p,"\n___________________________________________________\n");
fprintf(p," UNIVERCITE \n\n");
fprintf(p," DEPARTEMENT DE MATH \n\n");
fprintf(p," module : genie logiciel \n\n\n");
fprintf(p,"------------------------------------------------------------------------\n");
fprintf(p," mat\t| nom\t| prenom| td\t| tp\t| ex\t| rtp\t| moy1\t| moy2\t| \n");
fprintf(p,"------------------------------------------------------------------------");
for(i=0;i<n;i++){
fprintf(p,"\n %s\t| %s\t| %s\t| %.2f\t| %.2f\t| %.2f\t| %.2f\t| %.2f\t| %.2f\t|\n",etd.mat[i],etd.nom[i],etd.prenom[i],etd.td[i],etd.tp[i],etd.ex[i],etd.rtp[i],etd.moy1[i],etd.moy2[i]);
fprintf(p,"------------------------------------------------------------------------");
}
}
fclose(p);
}
main()
{
int x ;
do {printf("que voulez vous faire?\n");
printf("1-saisie des notes\n");
printf("2-calculer\n");
printf("3-affichage\n");
scanf("%d",&x);
switch (x)
{
case 1:
creer();
break;
case 2:
moy();
break;
case 3:
fichier();
break;
default:
printf("erreur");
break;
}
printf("voulez vous faire un autre traitement 1-oui 2-non ");
scanf("%d",&x);
if(x==1) continue ;
else break ;
}
while (1);
}
mrc d'avance
voici mon programme:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct etudiant etudiant;
struct etudiant
{
float td[100],tp[100],ex[100],rtp[100],moy1[100],moy2[100];
char nom[100][100],prenom[100][100],mat[100][100];
};
etudiant etd;
int n,i;
void creer(){
printf("donner le nombre d'etudiants\t_");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\nl'etudiant N %d :\n",i+1);
printf("\ndonner le nom:\t");
scanf("%s",etd.nom[i]);
printf("\ndonner le prenom:\t");
scanf("%s",etd.prenom[i]);
printf("\ndonner le matricule:\t");
scanf("%s",etd.mat[i]);
printf("donner la note de td:\t");
scanf("%f",&etd.td[i]);
while(etd.td[i]<0 || etd.td[i]>20){
printf("donner la note de td:\t");
scanf("%f",&etd.td[i]); }
printf("donnez la note du tp: \t");
scanf("%f",&etd.tp[i]);
while(etd.tp[i]<0 || etd.tp[i]>20){
printf("donner la note de tp:\t");
scanf("%f",&etd.tp[i]); }
printf("donnez la la note de l'examen:\t");
scanf("%f",&etd.ex[i]);
while(etd.ex[i]<0 || etd.ex[i]>20){
printf("donner la note de examen:\t");
scanf("%f",&etd.ex[i]); }
if(etd.ex[i]<10){
printf("donnez la note de ratrapage:\t");
scanf("%f",&etd.rtp[i]);
while(etd.rtp[i]<0 || etd.rtp[i]>20){
printf("donner la note de ratrapage:\t");
scanf("%f",&etd.rtp[i]);
}
}
}
}
void moy(){
for(i=0;i<n;i++){
etd.moy1[i]=((((etd.td[i]+etd.tp[i])/2)+(etd.ex[i]*2))/3);
if(etd.ex[i]<10)
etd.moy2[i]=((((etd.td[i]+etd.tp[i])/2)+(etd.rtp[i]*2))/3);
else etd.moy2[i]=etd.moy1[i];
}
}
void fichier(){
FILE* p=NULL;
p=fopen("G:\\etudiant.txt","w");
if(p!=NULL)
{
fprintf(p,"\n___________________________________________________\n");
fprintf(p," UNIVERCITE \n\n");
fprintf(p," DEPARTEMENT DE MATH \n\n");
fprintf(p," module : genie logiciel \n\n\n");
fprintf(p,"------------------------------------------------------------------------\n");
fprintf(p," mat\t| nom\t| prenom| td\t| tp\t| ex\t| rtp\t| moy1\t| moy2\t| \n");
fprintf(p,"------------------------------------------------------------------------");
for(i=0;i<n;i++){
fprintf(p,"\n %s\t| %s\t| %s\t| %.2f\t| %.2f\t| %.2f\t| %.2f\t| %.2f\t| %.2f\t|\n",etd.mat[i],etd.nom[i],etd.prenom[i],etd.td[i],etd.tp[i],etd.ex[i],etd.rtp[i],etd.moy1[i],etd.moy2[i]);
fprintf(p,"------------------------------------------------------------------------");
}
}
fclose(p);
}
main()
{
int x ;
do {printf("que voulez vous faire?\n");
printf("1-saisie des notes\n");
printf("2-calculer\n");
printf("3-affichage\n");
scanf("%d",&x);
switch (x)
{
case 1:
creer();
break;
case 2:
moy();
break;
case 3:
fichier();
break;
default:
printf("erreur");
break;
}
printf("voulez vous faire un autre traitement 1-oui 2-non ");
scanf("%d",&x);
if(x==1) continue ;
else break ;
}
while (1);
}
A voir également:
- Comment peut-on utiliser l'instruction "fwrite" and "fread"
- Comment utiliser chromecast sur tv - Guide
- Spybot search and destroy - Télécharger - Antivirus & Antimalwares
- Utiliser iphone comme webcam - Guide
- Comment utiliser utorrent - Télécharger - Téléchargement & Transfert
- Comment utiliser wetransfer - Guide
1 réponse
Bonsoir.
Votre code est très compliqué à lire, vous devriez utiliser les balises code, et choisir le langage adapté.
De plus, ce code est très désordonné.
Dernier point : c'est du C, non du C++, qui sont deux langages différents, donc pourquoi l'avoir mit dans le forum C++ ?
Cordialement,
EchoIsON.
Votre code est très compliqué à lire, vous devriez utiliser les balises code, et choisir le langage adapté.
De plus, ce code est très désordonné.
Dernier point : c'est du C, non du C++, qui sont deux langages différents, donc pourquoi l'avoir mit dans le forum C++ ?
Cordialement,
EchoIsON.
boudjelloulimane
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
Mais c du #C qui a dit que c du C++. Vous pouvez vérifié c le forum C comm... puis mon programme sa marche c'est vrai qu'il é un pe désordonné ms sa marche normalement j'avais besoin juste à utiliser l'instruction fwrite au lieu de la fprintf