Rechercher : dans
Par :

Ouvrir plusieurs fichiers

Dernière réponse le 14 jun 2009 à 20:53:46 kamans, le 14 jun 2009 à 01:05:00 
 Signaler ce message aux modérateurs

Bonjour,
voila, je fait un petit programme en langage c, mon probleme c'est que j'arrive pas à ouvir et ecrire dans plusieurs fichiers en meme temps.
mon code

char dest[100][20], file[100][20];

src=fopen(argv[1],"r");
for(i=0;i<p;i++)
{
strcpy(dest[i],"dest");
sprintf(s,"%i",i);
strcat(dest[i],s);
strcpy(file[i],"file");
strcat(file[i],s);
FILE *dest[i];
dest[i]=fopen(file[i],"w");
}
.
.
.
if (strcmp(mot ,"@<TRIPOS>MOLECULE")==0)
{
nb[i]+=1;
}
fprintf(dest[i],"%s",buff); // warning: passing argument 1 of ‘fprintf’ from incompatible pointer type

.
.
.
fclose(src);
for (i=0; i<parties;i++)
{
fclose(dest[i]); // warning: passing argument 1 of ‘fprintf’ from incompatible pointer type
}


SVP pouvez vous me corriger ce code. MERCI

Configuration: Linux
Firefox 3.0.10

Meilleures réponses pour « ouvrir plusieurs fichiers » dans :
Comment ouvrir un fichier PPS (présentation PowerPoint) ? VoirComment lire un fichier PPS ? Les fichiers PPS sont des diaporamas crées avec le logiciel PowerPoint. Il s'agit simplement de fichiers PPT dont l'extension du nom de fichier a été modifiée en PPS. Il est possible de les ouvrir avec un des logiciels...
Ouvrir un fichier WPS VoirProblème Vous avez reçu par mail un fichier joint en wps, mais vous n'arrivez pas à l'ouvrir avec Word ou Open Office. Solution Il suffit de se rendre sur le site http://www.conv2pdf.com, qui permet de convertir les fichiers WPS en PDF. Merci...
Ouverture d'un fichier VoirOuverture d'un fichier existant crée avec le même logiciel Il existe fondamentalement deux méthodes pour ouvrir un fichier sous Windows : Choisissez dans le menu du logiciel concerné Fichier > Ouvrir et naviguez jusqu’au fichier concerné dans la...

1

bizu53, le 14 jun 2009 à 01:42:46

J'ai vite regardé, je ne sais pas si ce n'est que ça, mais tu as déclaré deux fois ta variable dest :
char dest[100][20] et FILE *dest[i]
(D'où l'intérêt de toujours tout déclarer en début de code).

Répondre à bizu53

2

kamans, le 14 jun 2009 à 14:45:50

Si je le declare sous en FILE *dest aprés je peu pas y introduire les chaines de caracteres des pointeurs vers les noms des fichiers et si je le declare seulement sous forme tableau ça marche pas au niveau de l'ouverture du fichier: dest[i]=fopen(file[i],"w");

Répondre à kamans

3

bizu53, le 14 jun 2009 à 14:53:26

Ce que je disais, c'est qu'au début du code tu déclares dest comme étant un tableau de char, et après tu le redéclares en un pointeur sur FILE : tu ne peux pas redéclarer ta variables dest en FILE* si tu l'as déjà déclarée en char[][] au début.
Utilise 2 noms différents pour tes variables, par exemple dest_c pour ton tableau de char, et dest_f pour FILE* (ou n'importe quoi d'autre).

Répondre à bizu53

4

kamans, le 14 jun 2009 à 15:17:14

Oui, merci bien ça j'ai bien compri, mais comment faire pour déclarer les pointeurs vers les fichiers? parceque chaque fichier lui faut un pointeur pour l'ouvrir, et le nombre de fichiers n'est fixe!
j'espere que je suis plus clair cette fois

Répondre à kamans

5

 bizu53, le 14 jun 2009 à 20:53:46

Ah oui, c'est plus clair, je n'avais pas compris.
Cela se fait comme s'il s'agissait d'un FILE* normal, càd :

FILE *fp = (FILE*) malloc(n*sizeof(FILE*)); //n : nombre de pointeurs

...

for(i = 0 ; i < n ; i++) {
   fp[i] = fopen(dest[i], "w");
   ...
}

...

Répondre à bizu53