Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ECRITURE DANS UN FICHIER


Information sur la source



Description

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

  • #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);
  • }
#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 ! :))
 

Commentaires et avis

signaler à un administrateur
Commentaire de satanik_mike le 03/02/2002 01:09:38

Salut,
En effet, il y a quelques truc à changer, ainsi qu'une petite erreur de traduction, il ne fallait pas traduire : "5 valeurs numériques en flottant", mais "5 valeurs numériques de type float". :-))

signaler à un administrateur
Commentaire de chavez le 22/12/2002 22:03:16

Ca va m'apprendre des trucs!

signaler à un administrateur
Commentaire de zzzzzz le 12/02/2003 21:37:56

tres tres instructif merci beaucoup!

signaler à un administrateur
Commentaire de zzzzzz le 12/02/2003 22:26:46

sa marche pas si on enleve clear_kbd(); sans aucun rajout de code juste l'enlever ba le prog se ferme avant de demander le nom de fichier

signaler à un administrateur
Commentaire de inu974 le 20/05/2003 08:41:40

merci beaucoup pour ton code surtout pour le rappel des differents parametres au debuit du code

signaler à un administrateur
Commentaire de cppdupdup34 le 06/07/2003 23:40:46

ce fut utile surtout les rappels du début

signaler à un administrateur
Commentaire de mdcn le 08/07/2003 13:34:34

bien bien de penser u scanf mais tu fais cmt si tu veux des espaces? enfin j'ai pas regardé le code ça ne m'intéresse pas perso mais c juste pr faire réfléchir.

merci quand même pr les autres

;-)

signaler à un administrateur
Commentaire de alimdi le 03/11/2003 00:39:32

Bah pour le rappel de debut les man pages suffisent :)

signaler à un administrateur
Commentaire de Guidelor le 03/02/2004 22:06:59

ca va sans doute me servir mais plus de commentaires n'auraient pas été de trop !
donc moi qui suis debutant je suis obligé de chercher tous les mots que je comprends pas !...

signaler à un administrateur
Commentaire de sobolev le 26/03/2004 15:11:18

c'est quoi cette connerie!

signaler à un administrateur
Commentaire de magic_Nono le 27/07/2004 14:28:53

niveau initié ? fo po pousser qd mm!
pense à un outil style MP pr tes commentaires!

++

signaler à un administrateur
Commentaire de Fituza le 29/09/2004 19:04:42

thx pour ce ptit tuto

signaler à un administrateur
Commentaire de mayouma le 20/04/2005 00:38:46

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

signaler à un administrateur
Commentaire de ewe le 23/06/2005 14:56:13

mayouma lseek sa existe regarde dans la meuseudeuneu

signaler à un administrateur
Commentaire de rainiou le 19/02/2007 13:05:57

C'est toujours très utile quand on ne se sert pas de l'ecriture fichier tous les jours!

signaler à un administrateur
Commentaire de toxicopathe le 21/04/2007 15:31:28

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 :)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.