c encore moi .......... (au risque de gener certaines personnes) - C++ - Programmation
Marsh Posté le 20-08-2002 à 16:36:13
tu passes le pointeur en paramètre, alors que tu dois passer l'adresse du pointeur, pour que la fonction puisse modifier le contenu de "fichier1" et "fichier2"
cf passage de paramètre dans tout bon cours de C
Marsh Posté le 20-08-2002 à 16:36:42
Pour passer les arguments aux fonctions, il vaut mieux utiliser un pointeur sur la chaîne nom (son nom est symbolique). Le dimensionnement étant fait ailleurs (déclaration au début (char nom1[64]={0},nom2[64]={0}, la mémoire est réservée et initialisée. Attention à ne pas dépasser 63 caractères utiles (le 64ème est le zéro terminal).
void lecture(FILE *fichier, char *nom)
void ecriture(FILE *fichier, char *nom)
Pour regarder plus avant, ai pas le temps ce soir.
Marsh Posté le 20-08-2002 à 16:37:39
le prob vient de FILE *
il doit passer FILE **
Marsh Posté le 20-08-2002 à 16:39:44
Et puis je te conseil soit de lire tout une ligne d'un coup soit carrément de lire tout le fichier, c pas top la lecture caractaire par caractaire.
Marsh Posté le 20-08-2002 à 16:46:24
antp a écrit a écrit : tu passes le pointeur en paramètre, alors que tu dois passer l'adresse du pointeur, pour que la fonction puisse modifier le contenu de "fichier1" et "fichier2" cf passage de paramètre dans tout bon cours de C |
alors si j ai bien compris le pb vient du fait que mes fichiers ne sont pas bien ouvert
c pour ca que ca ne marchais plus lorque que les ai mis en fonction et non en instruction dans le programme principale
il faut donc passer l'argument en parametre pour qu'il puisse etre changer , c bien ca ????
donc en gros faut faire un double pointeur dur la variable FILE
j ai bien compris monsieur le professeur ????
Marsh Posté le 20-08-2002 à 16:48:15
letoII a écrit a écrit : Et puis je te conseil soit de lire tout une ligne d'un coup soit carrément de lire tout le fichier, c pas top la lecture caractaire par caractaire. |
le probleme c qu il faut que je prenne des informations tantot dans un fichier , tantot dans l autre .......
et les info d'un fichier ne se suive pas forcement , c a dire qu il faut que je prenne un champs d un fichier A , puis un champs d'une fichier B , puis on reviens sur un autre champs du fichier A ....
les champs de ces fichiers sont séparées par des points virgules
Marsh Posté le 20-08-2002 à 16:48:50
"argument de paramètre"
faut donner l'adresse de la variable de type "FILE *" pour que la fonction puisse changer, parce que si tu donnes juste la variable elle peut faire tout ce qu'elle veut sauf changer la valeur
Marsh Posté le 20-08-2002 à 17:00:19
Lenoiche a écrit a écrit : alors si j ai bien compris le pb vient du fait que mes fichiers ne sont pas bien ouvert c pour ca que ca ne marchais plus lorque que les ai mis en fonction et non en instruction dans le programme principale il faut donc passer l'argument en parametre pour qu'il puisse etre changer , c bien ca ???? donc en gros faut faire un double pointeur dur la variable FILE j ai bien compris monsieur le professeur ???? |
Trouve toi un bon cours de C
Marsh Posté le 22-08-2002 à 00:18:30
1) Eviter les variables globales.
2) On ne peut transmettre un tableau en argument, seulement son adresse. char nom[64] est convertit en char* nom.
3) Il faut transmetttre un pointeur sur FILE*.
4) La série de fonction de fichiers f... gère un tampon interne au programme. Ce n'est pas un problème d'y accéder 1 caractère à la fois.
5) int main() requiert un return.
Code :
|
Marsh Posté le 22-08-2002 à 19:11:33
Tu devrais peut-être changer le nom de tes fonctions, et les appeler par ex "ouvrir_en_lecture" et "ouvrir_en_ecriture".
Ca rendrait le code plus lisible et c'est une bonne habitude à prendre de donner des noms explicites aux fonctions!
Marsh Posté le 23-08-2002 à 02:23:19
Quel plouc je fais !
Mon code n'était pas correct
Code :
|
Marsh Posté le 26-08-2002 à 10:16:03
okay merci les messieurs pour voter aide ki m a ete d un grand secours
Marsh Posté le 20-08-2002 à 16:27:59
voila j'vous previens si c'est pour me dire que j'suis vraiment trop nul en programmation , spa la peine de venir poster , apsser votre chemin
alors pour les autres personnes qui ont la bonne volonté de m'aider , vous etes pret ?????
c'est parti , accroché vous ca va décoiffer
donc c 'est la partie de lecture / ecriture ki foire depuis que j ai mis les instruction d ouverture de fichier en procedure ....
moi pas comprendre pq
Message édité par Lenoiche le 20-08-2002 à 16:41:18