NewbieContest

Programmation => Langages compilés => Discussion démarrée par: nofx le 11 Décembre 2005 à 13:11:40



Titre: [C] ecriture dans un fichier txt
Posté par: nofx le 11 Décembre 2005 à 13:11:40
bonjour a tous

j aimerai saviur comment on fait pour ecrire en c dans un fichier txt en c
j ai trouver **No Sms** script sur le net mais rien de bien concret
par exemple

je rentre des valeurs dans un tableau et

jaimerai que ces valeurs soient mises dans un fichier txt..
quel sont les intructions a ecrire..
merci d'avance


Titre: [C] ecriture dans un fichier txt
Posté par: neoflo le 11 Décembre 2005 à 13:31:48
Pour écrire dans un fichier, les fonctions de bases utilisent un flux.
Si tu connais printf et scanf, il y a les équivalents fprintf et fscanf qui permettent d'écrire dans un flux.
Exemple:

Pour un fichier, on déclare un flux vers un fichier "machin.txt" de la manière suivante
Code:
FILE* flux_de_fichier;
flux_de_fichier = fopen("machin.txt","w");
//r pour read et w pour write (w écrira au début et effacera tout, faudra utiliser autre
chose pour écrire à la fin d'un fichier par exemple sans tout effacer)

//flux_de_fichier est un pointeur et sera mis à NULL si fopen n'aura pas réussi à ouvrir "machin.txt"

Ensuite, pour écrire, tu utilises fprintf de la manière suivante

Code:
fprintf(flux_de_fichier, "%d ", entier);
//si tu veux écrire la variable entier qui est un int

//ça fonctionne comme avec printf, sauf qu'on ajoute le flux de fichier avant
Si tu veux lire, par exemple, un caractère, c'est:
Code:
fscanf(flux_de_fichier, "%c", &caractere);
et la variable caractere contiendera le caractère lu.

Il faut noter que la fonction fscanf retourne -1 si elle n'a pas réussi à lire ce que tu voulais, et elle retourne EOF si elle a atteint la fin du fichier.

Exemple, écrire ds un fichier un tableau de 50 entiers

Code:
int i;
FILE* flux_fichier = fopen("machin.txt","w");
if (flux_de_fichier == NULL) //si on a pas pu ouvrir le fichier machin.txt
  return; //on arrête

for (i=0; i<50; i++)
  fprintf(flux_de_fichier, "%d ", tableau[i]); //ds le fichier, ça sera espacé par un espace

fclose(flux_de_fichier); //ferme le flux
NB: il faut mettre un #include<stdio.h> et #include<stdlib.h> au début


Titre: [C] ecriture dans un fichier txt
Posté par: comtezero le 11 Décembre 2005 à 13:51:10
ce post de neoflo doit repondre a ta question :lol:


Titre: [C] ecriture dans un fichier txt
Posté par: nofx le 11 Décembre 2005 à 15:49:42
merci a vous jvais essaye ca de suite merci :)