logo Homepage
+  NewbieContest
|-+  Programmation» Langages compilés» [C] ecriture dans un fichier txt
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [C] ecriture dans un fichier txt  (Lu 2925 fois)
nofx
Profil challenge

Classement : 1819/54318

Membre Junior
**
Hors ligne Hors ligne
Messages: 88


Voir le profil WWW
« 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
Journalisée
neoflo
Profil challenge

Classement : 8124/54318

Membre Complet
***
Hors ligne Hors ligne
Messages: 171


Voir le profil WWW
« #1 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
Journalisée

comtezero

Profil challenge

Classement : 2120/54318

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1001


Voir le profil WWW
« #2 le: 11 Décembre 2005 à 13:51:10 »

ce post de neoflo doit repondre a ta question
Journalisée

·´¯`·­»Comtezero«­·´¯`·

http://www.masstek.org
nofx
Profil challenge

Classement : 1819/54318

Membre Junior
**
Hors ligne Hors ligne
Messages: 88


Voir le profil WWW
« #3 le: 11 Décembre 2005 à 15:49:42 »

merci a vous jvais essaye ca de suite merci
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: