Bonjour,
J'aurais aimé savoir si après chaque lecture sur un flux (au moins en debug, et encore que) vous testiez la validité du flux ou pas du tout?
Par exemple le code ci-dessous j'effectue le test à la ligne 19:
Si le fichier "test" ne contient pas suffisamment de données je me retrouve dans un comportement indéterminé.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <iostream> #include <fstream> #include <stdexcept> #include <vector> int main() { try { std::ifstream file("test", std::ios::in | std::ios::binary); if(!file) throw std::runtime_error("Open"); std::vector<char> r(10); file.read(&r[0], 10); if(!file) throw std::runtime_error("Read"); for(auto &x : r) std::cout << x << std::endl; return 0; } catch(const std::exception &e) { std::cout << "Error: " << e.what() << std::endl; } }
Merci d'avance! ;)