Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2992 connectés 

  FORUM HardWare.fr
  Programmation
  C

  boucle pour ouvrir plusieurs fichiers en C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

boucle pour ouvrir plusieurs fichiers en C

n°2008305
mamzelle_b​ulle
Posté le 09-07-2010 à 12:10:40  profilanswer
 

Bonjour à tous, j'ai un petit programme à faire en C dans lequel je dois ouvrir plusieurs fichiers (fichier1, fichier2, fichier3, …, fichier50) et j'aimerais faire une boucle for qui me les ouvrirait un par un, pour pouvoir les modifier. Mais je ne vois pas du tout comment faire cette boucle, donc si quelqu'un a une idée …
Merci d'avance pour vos réponses.

mood
Publicité
Posté le 09-07-2010 à 12:10:40  profilanswer
 

n°2008328
h3bus
Troll Inside
Posté le 09-07-2010 à 13:35:03  profilanswer
 

mamzelle_bulle a écrit :

Bonjour à tous, j'ai un petit programme à faire en C dans lequel je dois ouvrir plusieurs fichiers (fichier1, fichier2, fichier3, …, fichier50) et j'aimerais faire une boucle for qui me les ouvrirait un par un, pour pouvoir les modifier. Mais je ne vois pas du tout comment faire cette boucle, donc si quelqu'un a une idée …
Merci d'avance pour vos réponses.


 
 
Bonjour,
 
Il faudrait savoir comment tu connais les noms des fichiers, et quelles modifications tu compte faire (est-ce que c'est nécessaire d'avoir tous les fichiers ouvert en même temps ou est-ce que les ouvrir l'un a près l'autre suffit)


---------------
sheep++
n°2008329
mamzelle_b​ulle
Posté le 09-07-2010 à 13:44:14  profilanswer
 

Les fichiers je les ai créé et non ce n'est pas nécessaire qu'ils soient tous ouvert en même temps, j'aimerai justement pouvoir les ouvrir les uns après les autres.
 
 

n°2008330
h3bus
Troll Inside
Posté le 09-07-2010 à 13:51:55  profilanswer
 

Je n'arrive pas à savoir ce que tu veux faire exactement:
- Les fichiers, tu veux les modifier avec le code, ou les ouvrir avec un éditeur de texte et les modifier à la main?
- Comment le programme sait quels fichiers il doit ouvrir?
 
Quel est ton niveau en programmation?  :whistle:


---------------
sheep++
n°2008342
mamzelle_b​ulle
Posté le 09-07-2010 à 14:17:42  profilanswer
 

Oui les fichiers je veux les modifier avec le code, mon code est déjà fait, il marche mais le problème c'est que je suis obligé de le faire fichier par fichier, et comme il y en a beaucoup, c'est un peu long, c'est pour ça que j'aimerai pouvoir les ouvrir un par un grâce à une boucle for.
Pour mon niveau de programmation, il est pas génial, mais j'ai les bases.

n°2008369
mamzelle_b​ulle
Posté le 09-07-2010 à 14:29:10  profilanswer
 

voila mon programme :

Code :
  1. FILE *tmp1= NULL;
  2. tmp1 = fopen("fichier1","r" );
  3. if(tmp1 == NULL)
  4.         {
  5.                 printf("file opening error !\n" );
  6.                 return 1;
  7.         }
  8.  else
  9.         {
  10.  //je fais mes modifications dans mon fichier  
  11. }
  12. fclose(tmp1);

 
 
et je veux faire la exactement le même chose pour mon fichier2, fichier3 etc. Est ce que c'est possible de le faire avec une boucle for, ou est ce qu'il faut que je réecrive tout pour chaque fichier ?

n°2008372
h3bus
Troll Inside
Posté le 09-07-2010 à 14:30:01  profilanswer
 

Bon si tu as programmé les modifications je vois mal pourquoi tu n'arrive pas a faire une boucle d'ouverture de fichier mais bon.

 

En supposant que tes fichiers s'appellent fichier1, fichier2, fichier3, …, fichier50 un truc comme ça devrait marcher:

Code :
  1. char filename[255];
  2. int filecount;
  3. FILE * f;
  4. for(filecount = 1; filecount <= 50; filecount++)
  5. {
  6.     sprintf("fichier%d", filename, filecount);
  7.     if((f = fopen(filename), "r+" ) == NULL) exit(0);
  8.     // Fait ici tes modification sur f
  9.     fclose(f);
  10. }


Message édité par h3bus le 09-07-2010 à 14:31:13

---------------
sheep++
n°2008399
mamzelle_b​ulle
Posté le 09-07-2010 à 14:55:27  profilanswer
 

Merci, c'est à peu près ce que j'avais fait, mais j'ai toujours une erreur de segmentation. Moi non plus je ne vois pas pourquoi je n'y arrive pas ;)

n°2008402
h3bus
Troll Inside
Posté le 09-07-2010 à 14:57:07  profilanswer
 

Ou ça le segfault?


---------------
sheep++
n°2008405
mamzelle_b​ulle
Posté le 09-07-2010 à 14:58:09  profilanswer
 

aucune idée, c'est pas précisé à la compilation

mood
Publicité
Posté le 09-07-2010 à 14:58:09  profilanswer
 

n°2008407
h3bus
Troll Inside
Posté le 09-07-2010 à 15:00:04  profilanswer
 

Ah bah si c'est à la compilation ton segfault ça va être compliqué pour toi  :o


---------------
sheep++
n°2008408
mamzelle_b​ulle
Posté le 09-07-2010 à 15:01:47  profilanswer
 

erreur de segmentation au niveau du sprintf

n°2008409
h3bus
Troll Inside
Posté le 09-07-2010 à 15:05:27  profilanswer
 

Ah bah oui j'ai marqué de la m**de
 

Code :
  1. sprintf(filename, "fichier%d", filecount);


 
Je me demande même comment ça pouvait compiler.
Et aussi il faut absolument allouer filename par  

Code :
  1. char filename[255];


un

Code :
  1. char * filename;


ou

Code :
  1. char filename[];


a toutes les chance de générer un segfault...

Message cité 1 fois
Message édité par h3bus le 09-07-2010 à 15:05:52

---------------
sheep++
n°2008411
mamzelle_b​ulle
Posté le 09-07-2010 à 15:14:02  profilanswer
 

c'est plus d'erreur de segmentation, ça devrait marcher maintenant. Merci beaucoup  :)

n°2008720
Sve@r
Posté le 11-07-2010 à 18:39:51  profilanswer
 

h3bus a écrit :

Ah bah oui j'ai marqué de la m**de
 

Code :
  1. sprintf(filename, "fichier%d", filecount);


 
Je me demande même comment ça pouvait compiler.


Ben la signature de sprintf demande deux char * aux deux premiers paramètres donc ça compile très bien...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  boucle pour ouvrir plusieurs fichiers en C

 

Sujets relatifs
utilisation de script js plusieurs fois dans une même pageLa video avec JAVA/JVM c'est possible?
Aide pour boucle for shell DOS[ASP .Net / C#] Gridview : Personnalistation du Pager
[C++] #include -> Type inconnuLister les fichiers d'un répertoire : problème de portabilité?
Besoin d'information sur les fichiers partagés sur Excel[Ada+C] Storage Error à la lecture d'une entrée Midi en C via Ada
Par défaut requete en de plusieurs tables en relations avec hibernatquel logiciel pour faire du SQL sur des GROS fichiers bruts (csv)?
Plus de sujets relatifs à : boucle pour ouvrir plusieurs fichiers en C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR