Bonjour,
C'est quoi une opération de lecture sur disque et comment je peux lancer un exemple d'une opération de lecture en utilisant C++?
Merci d'avance
Bonjour,
C'est quoi une opération de lecture sur disque et comment je peux lancer un exemple d'une opération de lecture en utilisant C++?
Merci d'avance
Hello,
Bah c'est une lecture sur disque... Comme un accès à un fichier.
Regarde du coté de std::fstream
Petit exemple rapide
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
20 //exemple.txt 1 4.2 blah // main.cpp #include <fstream> #include <string> #include <cmath> int main() { int i; double d; std::string str; std::ifstream is("exemple.txt"); is >> i >> d >> str; assert(i == 1); assert(std::abs(d - 4.2) < 1e-5); assert(str == "blah"); return 0; }
Merci pour votre réponse
Si je veux mesurer le temps consacré par le système pour réaliser une lecture, est ce que ce code est juste ? Ou je dois déplacer les instructions mesurant ce temps ?
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 int main() { double temps; clock_t start; start = clock(); ifstream fichier("exemple.txt"); char caractere; while(fichier.get(caractere)) temps = (double)(clock()-start)/(double)CLOCKS_PER_SEC; fichier.close(); cout<<temps<<endl; system("PAUSE"); return 0; }
La lecture octet par octet ça risque d'être lent.
Sinon, il faut prendre le temps après la lecture, et pas à chaque itération (";" manquant ?).
C'est-à-dire le code devient :
Les résultats affichés changent d'une exécution à une autre (0.012 s, 0s...) et plusieurs fois me donne 0 seconde. Je veux un temps exacte pour une opération de lecture sur disque y'a t'il une autre manière pour avoir cette information?
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 int main() { double temps; clock_t start; start = clock(); ifstream fichier("exemple.txt"); char caractere; while(fichier.get(caractere)) fichier.close(); temps = (double)(clock()-start)/(double)CLOCKS_PER_SEC; cout<<temps<<endl; system("PAUSE"); return 0; }
Etant donné qu'au premier caractère lu tu refermes ton fichier, le résultat n'est pas surprenant.![]()
Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
Un peu de programmation réseau ?
Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.
Partager