Aide programme C
Fermé
mator
-
13 avril 2006 à 00:38
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 20 avril 2006 à 12:27
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 20 avril 2006 à 12:27
A voir également:
- Aide programme C
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Forcer la fermeture d'un programme - Guide
- Sms programmé - Guide
3 réponses
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
13 avril 2006 à 01:27
13 avril 2006 à 01:27
Ben euh t'as pas l'impression que c'est un poil bourrin de stocker 75000*12* la taille d'un short en mémoire ?
La vraie question est en fait, est-il nécessaire de conserver en mémoire une matrice aussi grande ou ne peut-on pas fonctionner ligne par ligne ? Car au final on pourrait faire simplement :
Par ailleurs pourquoi ne pas simplement tester si noki à atteint la fin du fichier EOF. Enfin quel interêt de stocker les valeurs dans un tableau ? Pourquoi ne pas les écrire directement au fur et a mesure ?
Par ailleurs
- tu n'as pas declaré x, mais a priori on n'en a plus besoin
- tu as oublié de fermer le fichier noki
- pour être standard la fonction main retourne un int désignant le code d'éxecution (0 si le programme se finit bien, le code d'erreur sinon)
- les variables write et import semblent ne servir à rien
Au final ça donne :
Je n'ai pas compilé et testé le code mais c'es quelque chose dans le genre...
Bonne chance
La vraie question est en fait, est-il nécessaire de conserver en mémoire une matrice aussi grande ou ne peut-on pas fonctionner ligne par ligne ? Car au final on pourrait faire simplement :
unsigned short xab[12]; unsigned short m,n; leno = fopen ("write","w"); noki = fopen ("denomb" , "r"); scanf("%u",&x); for(m=0;m<x;m++) { for(n=0;n<11;n++) { fscanf(noki,"%hu",&xab[m][n]); } fprintf(leno,"%hu %hu %hu %hu %hu %hu %hu %hu %hu %hu %hu %hu\n",m+1,xab[0],xab[1],xab[2],xab[3],xab[4],xab[5],xab[6],xab[7],xab[8],xab[9],xab[10]); }
Par ailleurs pourquoi ne pas simplement tester si noki à atteint la fin du fichier EOF. Enfin quel interêt de stocker les valeurs dans un tableau ? Pourquoi ne pas les écrire directement au fur et a mesure ?
unsigned short int val_lue; int ret_fscanf; while(ret_fscanf!=EOF) { for(n=0;n<11;n++) { ret_fscanf(noki,"%hu",&val_lue); fprintf(leno,"%hu %hu ",n,val_lue); } }
Par ailleurs
- tu n'as pas declaré x, mais a priori on n'en a plus besoin
- tu as oublié de fermer le fichier noki
- pour être standard la fonction main retourne un int désignant le code d'éxecution (0 si le programme se finit bien, le code d'erreur sinon)
- les variables write et import semblent ne servir à rien
int main(){ ... return 0; }
Au final ça donne :
# include <stdio.h> int main (){ FILE *leno; FILE *noki; unsigned short val_lue; unsigned short n; int ret_fscanf leno = fopen ("write","w"); noki = fopen ("denomb" , "r"); //scanf("%u",&x); while(ret_fscanf!=EOF) { for(n=0;n<11;n++) { ret_fscanf(noki,"%hu",&val_lue); fprintf(leno,"%hu %hu ",n,val_lue); } } printf("fin"); fclose (leno); fclose (noki); return 0; }
Je n'ai pas compilé et testé le code mais c'es quelque chose dans le genre...
Bonne chance
Bonjour et merci pour le programme.
J'essaye de le tester et j'ai rajouté la declaration du x, mais j'ai un message d'erreur pour cette ligne :
ret_fscanf(noki,"%hu",&val_lue);
Le message d'erreur est : " call of non-function "
En vois tu la raison?
merci
J'essaye de le tester et j'ai rajouté la declaration du x, mais j'ai un message d'erreur pour cette ligne :
ret_fscanf(noki,"%hu",&val_lue);
Le message d'erreur est : " call of non-function "
En vois tu la raison?
merci
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
20 avril 2006 à 12:27
20 avril 2006 à 12:27
Ca me déçoit un peu que tu ne sois pas en mesure de la corriger tout(e) seul(e) ça veut dire que tu n'as pas essayé de comprendre ce que j'"ai écrit... C'est ret=fscanf....
@+
@+