DEBUTANT EN C++
Bonjour,
Je dois lister un repertoire dans lequel il y a des fichiers images .bmp
et ecrire le nom de ces fichiers dans fichier .txt (blanc si le fichier n'existe pas)
Fichier.txt
nom1
nom2
nom4
...
Les noms des fichiers images sont :
Img00000001_001
Img00000002_002
Img00000003_005 saut de 2 a 5, mais premier chiffre inc de 1
Img00000004_006
Img00000005_008
....
Img00000999_150
le premier numero est tj incremente de 1
le deuxieme ne l'est pas (perte d'image au cours de l'acq donc saut a l'image suivante)
j'utilise DEV-C++
A la compil du prog, j'ai les erreurs suivantes : (ouvertures de fichiers)
53 C:\Dev-Cpp\Projet VI\main.cpp no matching function for call to `std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(std::string&, const std::_Ios_Openmode&)'
90 C:\Dev-Cpp\Projet VI\main.cpp no matching function for call to `std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(std::string&)'
Merci de votre aide pour resoudre ce pb.
Voici mon code
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 #include <iostream.h> #include <stdlib.h> #include <string.h> #include <fstream.h> #include <strstream> #include <sstream> #include <stdio.h> #include <io.h> //_findfirst routines (system calls) using namespace std; main() { std::string CHEMIN_FICHIER; // Fichier a creer std::string CHEMIN_REPERTOIRE; // Chemin du Repertoire a lister std::string NAME; // Nom du fichier a trouver std::string tampon1,tampon2; // tampons pour conv. int to string int i, j; // numero immage int NBIMAGES, PREFICHIMG, DERFICHIMG; // Creation d'un fichier : std::cout << "Entrez le CHEMIN DU FICHIER a creer Ex: (c:\\temp\\acqimg.txt)\n"; std::cin >> CHEMIN_FICHIER; std::cout << "\n" << CHEMIN_FICHIER; std::cout << "\n"; std::cout << "Entrez le CHEMIN DU REPERTOIRE a lister (Ex: c:\\ACQ\\images)\n"; std::cin >> CHEMIN_REPERTOIRE; std::cout << "\n" << CHEMIN_REPERTOIRE; std::cout << "\n"; std::cout << "Entrez le nombre d'images acquises (projet VI 3000) : "; std::cin >> NBIMAGES; std::cout << NBIMAGES; std::cout << "\n"; std::cout << "Entrez le numero * du premier fichier image du repertoire a lister\n (Img0000000*_000) : "; std::cin >> PREFICHIMG; std::cout << PREFICHIMG; std::cout << "\n"; std::cout << "Entrez le numero *** du dernier fichier image du repertoire (max 999) a lister\n (Img00000***_000) : "; std::cin >> DERFICHIMG; std::cout << DERFICHIMG; std::cout << "\n"; // Lire le repertoire et remplir le fichier avec les noms des fichiers images existants ofstream outfile(CHEMIN_FICHIER,ios::app); // Ouverture fichier en mode ecriture :arrow: { for (i=PREFICHIMG; i=DERFICHIMG; i++) { // créer un flux de sortie std::ostringstream oss; // écrire un nombre dans le flux oss << i; // récupérer une chaîne de caractères std::string tampon1 = oss.str(); for (j=i; j=NBIMAGES; j++) { // Creation du chemin du repertoire a lister // créer un flux de sortie std::ostringstream oss; // écrire un nombre dans le flux oss << j; // récupérer une chaîne de caractères std::string tampon2 = oss.str(); // Nom du fichier image suivant les valeurs de i et j if ((0<=i<10) && (0<=j<10)) NAME = "Image0000000"+tampon1+"_00"+tampon2+".bmp"; if ((10<=i<100) && (10<=j<100)) NAME = "Image000000"+tampon1+"_0"+tampon2+".bmp"; if ((100<i<=DERFICHIMG) && (100<j<=NBIMAGES)) NAME = "Image00000"+tampon1+"_"+tampon2+".bmp"; CHEMIN_REPERTOIRE = CHEMIN_REPERTOIRE+"\\"+NAME; ifstream infile(CHEMIN_REPERTOIRE); // Ouverture fichier en mode lecture :arrow: { if(!infile) // Ecriture dans le fichier cree { outfile << "\n"; } else outfile << CHEMIN_REPERTOIRE; } infile.close(); } } } outfile.close(); // Fermeture du fichier cree cin.ignore(); cin.ignore(); }
Partager