Utilisation du fopen/fclose , fread/fwrite avec visual studio

Soyez le premier à donner votre avis sur cette source.

Snippet vu 19 722 fois - Téléchargée 34 fois

Contenu du snippet

Ce code permet l'ouverture d'un fichier en lecture ou ecriture,d'en lire le contenu ou d'ecrire dans ce fichier.
Il montre donc l'utilisation des fonctions courantes d'E/S sur les fichiers.
J'ai écrit ce code parce que je cherchais comment on les utilisait pour mon projet, sans trouver de reponses a toutes mes questions (notamment pour ouvrir un fichier dont le nom est saisie par l'utilisateur).
Voilà j'espere qu'il vous aidera vous aussi...
bonne prog...

Source / Exemple :


#include <stdio.h>

void transform(char* str){
	/*permet d'enlever le \n d'une chaine*/
	int cpt;

	for(cpt=0;str[cpt]!='\0';cpt++);
	if (cpt>0) str[cpt-1]='\0';
}

/*cette fonction n'est pas vraiment performante : elle est juste là pour utiliser le fwrite*/
void ecriture(FILE * fichier){
		/*ecrit le fichier caractere par caractere*/
		char c;
		while((c=getchar())!=4)	/*ctrl+d et return pour arreter le traitement  */
			fwrite(&c,sizeof(char),1,fichier);
}

void lecture(FILE * fichier){
	/*lit le fichier caractere par caractere*/
	char buf;
	int ret=1;
	
	if (fichier!=NULL)
		do
		{		
		ret=fread(&buf,sizeof(char),1,fichier);
		printf("%c",buf);
		}while(!feof(fichier));
}

int flush_stdin(void){
	int c;
	while((c=getchar())!='\n');
	return 0;
}

int main(void){

	FILE * fichier;
	char nom_fic[80];
	char choix;

	printf("entrez le nom du fichier : ");
	fgets(nom_fic,80,stdin);
	transform(nom_fic);

	printf("choix : l=lecture,e=ecriture\n==>");
	scanf("%c",&choix);
	if (flush_stdin()!=0)
		printf("tampon non vide");

	if (choix=='l')
	{
		fichier=fopen(nom_fic,"r");
		lecture(fichier);
	}
	else if (choix=='e')
	{
		fichier=fopen(nom_fic,"w");
		ecriture(fichier);
	}

	fclose(fichier);
	
	return 0;

}

A voir également

Ajouter un commentaire

Commentaires

Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009

hey hey mdr poupou !!! yes yes ct le bon vieux temps ;)...
J'espere que cette année on apprendra des cours un peu plus...marrant ???
Demain ca fait chier !!! 9h ca fait trop tot !!!
Messages postés
2
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
16 novembre 2007

Vive les cours de sanchis !!! hein jp ;) !!!!
Messages postés
4
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
9 mai 2010

Merci , le fflush est nouveau pour moi, jai pas utilisé avant
tres bien comme amateur !!!
Messages postés
26
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
22 novembre 2005

Franchement je peut dire une seule chose : merci.
Je débute totalement en C et je devais programmer ce type de programme en ligne de commande sous linux.
Grâce à ce code je m'en suis parfaitement sortie.
Encore merci
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
la c'est du c, fstream c'est du c++
Afficher les 7 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.