Bonjour à tous,
Je me permets de venir vous poser une question des plus basiques mais qui est entrain de me faire pousser des cheveux blancs...
Je cherche à lire un fichier et à détecter lorsque j'ai atteint la fin du fichier. Vous allez me dire rien de plus simple...
J'ai le code suivant:
Le soucis c'est que si je mets un fichier qui fait PILE 160 000 octets, à la deuxième lecture, je ne déclenche pas le flag EOF alors que le dernier read me sort 0 octet lu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <iostream> #include <fstream> int main() { std::fstream file("monfichier.txt", std::ios::in|std::ios::binary); char buffer[80001]; file.read(buffer, 80000); std::cout << "Read: " << file.gcount() << " - end? " << file.eof() << std::endl; file.read(buffer, 80000); std::cout << "Read: " << file.gcount() << " - end? " << file.eof() << std::endl; file.read(buffer, 80000); std::cout << "Read: " << file.gcount() << " - end? " << file.eof() << std::endl; return 1; }
Qu'est ce que j'ai râté ?!?
Petite précision: la lecture n'est pas faite dans une boucle mais dans des appels successifs
Merci d'avance pour votre aide sur ce cas si ... basic
Partager