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

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

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.