Lecture impossible

NAVIE Messages postés 23 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 23 avril 2006 - 30 mars 2005 à 10:13
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007 - 30 mars 2005 à 17:35
Bonjour, j'écris au sujet d'un programme que j'ai créé pour lire un fichier.

Celui-ci est bien compilé mais il ne peut pas lire un fichier sans que je sache pourquoi.

En effet quand il entame la procédure pour lire il affiche le message d'erreur prévu pour.



Voici le code source:



#include

#include <conio.c>



using namespace std;



int main(int argc, char *argv[])

{

FILE * file;

cout<<"[?]Ouverture du fichier TSET.txt du répertoire C:/\a"<<endl;

getch();

if((file=fopen("C:/TSET.txt","r"))==NULL)

{

cout<<"[-]Fichier inexistant.\a\a\n";

getchar();

return 0;

}

cout<<"[+]Fichier existant.\a"<<endl<<endl;

cout<<"[?]Lecture du fichier"<<endl;

getch();

char Buffer[1024];

if((fread(Buffer, sizeof(Buffer), 10, file))!= 10)

{

cout<<"[-]Une erreur est survenu lors de la lecture\a\a"<<endl;

getch();

return -1;

}

cout<<"Texte : "<

cout<<"[?]Fermeture du fichier"<<endl;

getch();

if((fclose(file))!=0)

{

cout<<"[-]Une erreur est survenu lors de la fermeture\a\a"<<endl;

getch();

return -1;

}

cout<<"[+]Aucune erreur n'est survenu lors de la fermeture\a"<<endl;

getch();

return 0;

}



Merci a quiconque voudra m'aider



NAVI

3 réponses

cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
30 mars 2005 à 17:19
Heu je pense que l'erreur vien de la:

remplace: C:/TSET.txt par
C:\\TSET.txt

A mon avis ca ira mieu...
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
30 mars 2005 à 17:29
Salut,

La ligne ci-dessous est clairement en cause :
if((fread(Buffer, sizeof(Buffer), 10, file))!= 10)

Essaie plutôt un truc de ce genre :
int lecture;
while (lecture = fread(Buffer, sizeof(Buffer), 1, file))
{
printf("%s", Buffer);
}

En fait, la variable lecture devient égale à 0 lorsqu'il n'y a plus rien à lire. Celle-ci demeure égale à 1 tant qu'elle trouve de quoi lire dans le fichier texte.

En espérant t'avoir aidé,
A plus.
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
30 mars 2005 à 17:35
CLETER -> je t'assure que ça marche sous Win32, je procède toujours ainsi plus facilement porter mon code entre Linux/Windows.
NAVIE -> Aide sur fread http://www.infini-fr.com/Sciences/Informatique/Langages/Imperatifs/C/Api/fread.html. Il est bien précisé que le résultat peut être inférieur au nombre de blocs initialement demandé.

A plus.
0
Rejoignez-nous