Lecture / ecriture des fichiers en c ( accés de bas niveau )

Contenu du snippet

lecture / ecriture des fichiers en C ( accés de bas niveau )
l exemple lit le fichier dont le nom est demandé dans le programme et il passe en majuscule les lettres qui ne le sont pas...

Source / Exemple :


#include <iostream>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
using namespace std;

void AfficheFichier(char* nom)
{
char buffer;    // caractere lus
long fichier;   // identifiant du fichier
char nlus;
// on ouvre le fichier en lecture/ecriture
fichier=open(nom,O_RDWR);  
if(fichier==-1)
{
	//erreur d ouverture
	perror("open");
	exit(1);
}
else
{
	//lecture du buffer
	nlus=read(fichier,&buffer,sizeof(buffer));
	while(nlus!=0)
	{
		// on ecrit un caractere "buffer" au format C
		printf("%c",buffer);
		if((buffer>='a')&&(buffer<='z'))
		{
			// on recule d un caractere dans le fichier
			lseek(fichier,-1,SEEK_CUR);
			// on passe le caractere en majuscule
			buffer=buffer-'a'+'A';
			// on ecrit le buffer dans le fichier
			write(fichier,&buffer,sizeof(buffer));
		}
		// lecture du buffer
		nlus=read(fichier,&buffer,sizeof(buffer));
	}
	close(fichier);
}
}
int main(int argc,char* argv[])
{
char nom [50];
cout<<"Entrez le nom du fichier: ";
// on lit une chaine de caracteres "nom" au format C
scanf("%s",nom);
AfficheFichier(nom);
exit(0);
}

Conclusion :


il faut que le fichier lu soit dans le meme repertoire que le programme...

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.