Ecriture dans un fichier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 34 659 fois - Téléchargée 38 fois

Contenu du snippet

Voici un exemple de code pour écrire des données dans un fichier. J'ai choisis d'incrire 5 nombre flottants mais vous pouvez modifier tout cela ! :)

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>

/* EXEMPLE D'OUVERTURE DE FICHIER */

/* RAPPEL :
	r  : Ouverture du fichier en lecture, Si le fichier n'existe pas, fopen() renvoie NULL
	w  : Ouverture du fichier en écriture. Si le fichier n'existe pas, il est créé. S'il existe 
	     déjà, son contenu est effacé
	a  : Ouverture du fichier en lecture et en écriture. Si le fichier n'existe pas, il est créé.
	     S'il existe déjà, les nouvelles infomormations sont ajouté à la fin
	r+ : Ouverture du fichier en lecture et en écriture. Si le fichier n'existe pas, il est créé. S'il existe déjà, les nouvelles
	     informations sont écrites en tête, écrasants celles qui s'y trouvaient précédemment
	w+ : Ouverture du fichier en lecture et en écriture. Si le fichier n'existe pas, il est créé. S'il existe déjà, son contenu est écrasé.
	a+ : Ouverture du fichier en lecture et en mise à jour. Si le fichier n'existe pas il est créé. S'il 
	     existe déjà, les nouvelles informations sont ajoutées à la fin.

  • /
/* Exemple d'un programme d'écriture sur un fichier*/ void clear_kb(void); void main() { FILE *fp; float data[5]; int count; char filename[20]; puts("Tapez 5 valeurs numériques en flottant : "); for (count=0; count<5; count++) { scanf("%f",&data[count]); } clear_kb(); puts("Indiquez un nom pour le futur fichier : "); gets(filename); if ((fp = fopen(filename, "w")) == NULL) { fprintf(stderr, "Erreur à l'ouverture du fichier %s en mode w.\n\n", filename); exit(1); } for (count=0; count<5; count++) { // Ecriture dans le fichier + impression à l'ecran fprintf(fp, "\ndata[%d] = %f", count, data[count]); fprintf(stdout,"\nEcriture de : data[%d] = %f", count, data[count]); } fclose(fp); printf("\n\n"); } void clear_kb(void) { // Vidage de tout caractère en attente. char junk[80]; gets(junk); }

Conclusion :


Amusez-vous bien ! :))

A voir également

Ajouter un commentaire Commentaires
Messages postés
33
Date d'inscription
mercredi 18 octobre 2000
Statut
Membre
Dernière intervention
4 janvier 2010

Bonjour,

je souhaiterais convertir n'importe quel type de fichier (txt, jpg, avi, exe ...) en fichier binaire ou plutot en fichier texte contenant un suite de 0 et 1. et la meme chose faire le contraire.

#include <stdio.h>

int main(int argc, char **argv) {
/*
FILE *fp;
fp=fopen("test.c", "wb");
char x[10]="ABCDEFGHIJ";
fwrite(x, sizeof(x[0]), sizeof(x)/sizeof(x[0]), fp);
*/

FILE *fp;
fp=fopen("test.c", "rb");
char x[10];//="ABCDEFGHIJ";
fread(x, sizeof(char), 10, fp);

printf("%d================",sizeof(x));
printf("\n");
for(int i=0;i<sizeof(x);i++)
{

printf("%x==========",x[i]);
//printf("\n");
for(int j=7;j>=0;j--)
{
//printf("(%d)",j);
printf("%d",(x[i]>>j)&(255>>7));
}
printf("\n");
}

}

Merci pour votre aide.

sed
Messages postés
2
Date d'inscription
vendredi 3 février 2006
Statut
Membre
Dernière intervention
21 avril 2007

sympatique, ce qui m'enerve avec les fichier c'est que quand on ecrit en plein milieu par exemple, les caracteres suivants sont effacés ... perso je fais une copie du fichier qui s'arrete là ou je dois faire un ajout, une chaine de caractere par exemple, et ensuite je copie le reste (je sais pas si j'ai été tres clair :s)

je trouve ca vraimment lourd ...

si quelqu'un connait plus simple je suis tout ouie :)
Messages postés
6
Date d'inscription
lundi 31 octobre 2005
Statut
Membre
Dernière intervention
24 juin 2007

C'est toujours très utile quand on ne se sert pas de l'ecriture fichier tous les jours!
Messages postés
2
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 juin 2005

mayouma lseek sa existe regarde dans la meuseudeuneu
Messages postés
23
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
8 juin 2005

et si je veux écrire dans un fichier qui contient des informations mais au debut et non à la fin; comment faire?
Afficher les 18 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.