Aide erreur dans un programme en C

Fermé
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008 - 24 oct. 2008 à 12:32
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 24 oct. 2008 à 14:11
Bonjour,
j'ai ce programme ki demande d'entrere le nombre d'arretes et de somment d'un graphe, de l'afficher et de l'enregistrer dans un fichier. Voila j'arrive à tous faire sauf l'enregistrement, il crée le fichier mais il n'enregistre pas.
Que faire? aidez moi.
voici le programme:

#include<stdio.h>
//#include<stblib.h>
int i,j,n,p;
main()
{
int m[20][20],t[20],s,k,nb;

printf("introduire n le nombre de sommets\n\n n=");
scanf("%d",&n);
printf("introduire n le nombre d'arretes\n\n n=");
scanf("%d",&p);

printf("introduire la matrice\n\n");


for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
{
ref:
printf("M(%d,%d)=",i,j);
scanf("%d",&s);
if (s!=0&&s!=1)
{
printf("erroné!!\a\n\n");
goto ref;
}
else
m[i][j]=s;
}
//affichage de la matrices;
}
printf("affichage de la matrice :\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
{
printf(" %d ",m[i][j]);

}
printf("\n\n\n");
}


FILE *f;
char filename[255];
{
sprintf((char *) &filename,"resultats.txt",i);
printf("Je vais enregistrer dans le fichier\n",filename);
f = fopen(filename,"w");
if (f) fprintf(f, s);
//if (f) fprintf(f,"X=%d Y=%d\n",i,i+1);
else fprintf(stderr,"Erreur : ne peut pas ouvrir \n",filename);
fclose(f);
}
return 0;

3 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
24 oct. 2008 à 12:55
Salut,
FILE* f;
char*fichier="resultat.txt";
if (f=fopen(fichier,"w")) fprintf(f,"%d",s);
ca devrait marcher....
@+
-1
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008
24 oct. 2008 à 13:46
MERCI chuka? j'ai éssayé ta methode mais il m'enregistre pas la matrice dan sle fichier.
-1
sway-yazen Messages postés 128 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 18 octobre 2011 54
24 oct. 2008 à 13:04
#include<stdio.h>
#include<stdlib.h>
int i,j,n,p;
main()
{
int m[20][20],t[20],s,k,nb;
FILE *f;
char filename[255];
printf("introduire n le nombre de sommets\n\n n=");
scanf("%d",&n);
printf("introduire n le nombre d'arretes\n\n n=");
scanf("%d",&p);

printf("introduire la matrice\n\n");


for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
{
ref:
printf("M(%d,%d)=",i,j);
scanf("%d",&s);
if (s!=0&&s!=1)
{
printf("erroné!!\a\n\n");
goto ref;
}
else
m[i][j]=s;
}
//affichage de la matrices;
}
printf("affichage de la matrice :\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
{
printf(" %d ",m[i][j]);

}
printf("\n\n\n");
}




{
sprintf((char *) &filename,"resultats.txt",i);
printf("Je vais enregistrer dans le fichier\n",filename);
f = fopen(filename,"w");
if (f){
fprintf(f,"X=%d Y=%d\n",i,i+1);
for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
fprintf(f," %d ",m[i][j]);
fprintf(f,"\n");
}
}
else fprintf(stderr,"Erreur : ne peut pas ouvrir \n",filename);
fclose(f);
}
getch();
return 0;
}
-1
tfcv123 Messages postés 74 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 4 décembre 2008
24 oct. 2008 à 13:23
merci , comment je declare le getch(); il me dit ke ce n'est pas déclaré
-1
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
24 oct. 2008 à 14:11
Salut,
autant pour moi, en effet....sinon tu peux mettre le code dans en meme temps quela boucle d'affichage...i:
printf("affichage de la matrice :\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=p;j++)
{
printf(" %d ",m[i][j]);
fprintf(f,"%d",m[i][j]); //il faudra ouvrir le fichier avant....
}
printf("\n\n\n");
}
Sinon la soluce de sway-yazen doit tourner!!
Bon courage!!
@+
ps:c'est pas getch() mais getchar()
-1