Comment créer des fichier text en languag c??

Résolu/Fermé
sabug Messages postés 21 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 15 mai 2011 - 21 janv. 2007 à 01:58
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 - 19 déc. 2012 à 09:56
bonjours à tous le mondes et bonne annéeeeee!!!

Voilà mon problème, tout d'abord j'arrive à créer les fichier txt avec leur noms, exemple:
1.txt
2.txt
3.txt....
mais je n'arrive pas à les remplir avec un contenu différent dans chaqun, soit mon contenu de text est écraser dans tous les fichier txt, soit tout est mis bout à bout dans tous les fichier txt.

c a dire que dans 1 je voudrai écrire: X=1 Y=2
dans le 2 : X=2 Y=3
dans le 3 : X=3 Y=4

j'arrive juste à écrire X=3 Y=4 dans les trois fichier, ou alors

X=1 Y=2
X=2 Y=3
X=3 Y=4

dans les trois fichiers txt.

voila ce que jai écris :

for (i=1;i<=3;i=(i+0.1))
{
for (j=2;j<=4;j++)
{
for (k=1;k<=3;k++)
{
sprintf(nomFichier,"%d.txt",k);
fichier = fopen(nomFichier, "w");
fprintf (fichier,"X=%f\n",i);
fprintf (fichier,"Y=%d\n",j);
fclose(fichier);
}
}
}


voilà le w dans cette ligne (fichier = fopen(nomFichier, "w");) écrase tous dans le fichier existant, si on met un "a", à la place tout est écrit a la suite.
mais moi je veux:
X=1 Y=2 dans le 1.txt
X=2 Y=3 dans le 2.txt
X=3 Y=4 dans le 3.txt

voilà je pense que ce n'est pas un problème compliqué mais je suis novice si quelqun pouvait maider, ce serait géant merci.

aller bonne nuit à tous

sabug
A voir également:

6 réponses

mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
Modifié le 28 mars 2007 à 14:24
mais je n'arrive pas à les remplir avec un contenu différent dans chaqun, soit mon contenu de text est écraser dans tous les fichier txt, soit tout est mis bout à bout dans tous les fichier txt.

Il faut juste ouvrir ton fichier en "append" si tu veux écrire au bout d'un fichier déjà pré-rempli.
http://www.manpagez.com/missing.php

FILE *fp = fopen("plop.txt","a");


c'est-à-dire que dans 1 je voudrais écrire: X=1 Y=2
dans le 2 : X=2 Y=3
dans le 3 : X=3 Y=4


#include <stdio.h>  

int main() { 
    FILE *f;  
    char filename[255];  
    int i;  
    for(i = 1; i < 4; ++i) {  
        sprintf((char *) &filename,"%d.txt", i);  
        printf("Je vais écrire %s\n", filename);  
        f = fopen(filename, "w");  
        if (f) { 
            fprintf(f,"X=%d  Y=%d\n", i, i + 1);  
            fclose(f);  
        } else fprintf(stderr, "Erreur pour écrire %s\n", filename); 
    }  
    return 0;  
}


Bonne chance
14
sabug Messages postés 21 Date d'inscription vendredi 19 janvier 2007 Statut Membre Dernière intervention 15 mai 2011 2
21 janv. 2007 à 16:48
merci ça marche, j'ai pas encore tous compris, c'est pas encore bien clair dans ma tête mais ça marche aller j'y retourne merci encore, bonne journée.

Sabug
0
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
30 nov. 2010 à 19:00
On utilise un "buffer" (tampon), appelé ici filename, dans lequel on va construire à chaque itération le nom de chaque fichier à créer. On utilise pour cela sprintf et on injecte la valeur courant de i via le "%d".

Ensuite on essaye d'écrire dans ce fichier, pointé par f. S'il a été ouvert avec succès (f != NULL), alors on écrit dans f les valeurs de X et Y qui sont en fait "i" et "i+1". Puis on ferme le fichier.

Sinon on n'est pas parvenu à écrire le fichier. Dans ce cas on affiche un message d'erreur. Comme le fichier n'a pas été ouvert, on n'a pas à le fermer.

On répète le procédé pour chaque valeur de i, puis on quitte le programme proprement.
0
je souhaite comprendre l'argument "w" ca sert a quoi svp?
f = fopen(filename, "w");
0
mamiemando Messages postés 33076 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 17 avril 2024 7 748
19 déc. 2012 à 09:56
BENJ : merci d'ouvrir un nouveau fil de discussion la prochaine fois et de regarder le man (par exemple avec google si tu n'es pas sous linux) :

man fopen


Le paramètre "w" sert à dire à fopen d'ouvrir le fichier en écriture (et ça écrase son éventuel contenu, contrairement à "a", le mode append).
0