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...
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.