J'ai un problème de lecture des fichiers texte de mon répertoire.C++ Impossible de lire le fichier txt avec l'erreur de segmentation ifstream Erreur
Voici ma partie de l'exemple de code. (Si vous voulez, je peux télécharger le code tout)
ifstream file;
// Get Total Number of Lines from a sample text file
file.open(globLabel0.gl_pathv[0]);
for (int i = 0; getline(file, line); ++i)
columnSize++;
if(file.is_open())
file.close();
float trainingData[trainingDataRowSize][columnSize];
float testData[testDataRowSize][columnSize];
// Define Counters for Loading Samples
int columnCount=0;
int rowCount=0;
int histVal=0;
// Load Label0 Samples to Training Data
for(unsigned int i=0;i<globLabel0.gl_pathc;i++){
file.open(globLabel0.gl_pathv[i]);
while(file >> histVal){
trainingData[i][columnCount]=(histVal);
columnCount++;
}
file.close();
rowCount=i;
columnCount=0;
}
Permettez-moi de vous dire pas de code par étape:
1er: J'initialiser mon objet ifstream.
ifstream file;
2ème: J'enregistré tous mes fichiers texte dans l'objet globLabel0 et globLabel0 est initialisé comme suit:
glob_t globLabel0;
Puis-je stocker tous les fichiers texte dans le répertoire comme suit:
glob(trainLabel0.c_str(),GLOB_TILDE,NULL,&globLabel0);
Je sais que globLabel0 a 5923 fichiers texte, j'ai vu pendant le débogage.
Alors j'ai essayé d'ouvrir 1er fichier texte suivi
file.open(globLabel0.gl_pathv[0]);
3: Après avoir trouvé ColumnSize. J'ai fermé mon objet fichier.
file.close();
4: Voici mon problème, lorsque je tente d'ouvrir le fichier dans la boucle for
for(unsigned int i=0;i<globLabel0.gl_pathc;i++){
file.open(globLabel0.gl_pathv[i]); // Problem Here
Je l'erreur suivante:
Si possible, pourriez-vous S'il vous plaît dites-moi où j'ai fait une erreur?
On dirait que vous n'avez pas autant de membres de 'globLabel0.gl_pathv' que vous pensez avoir. –
Non, ne téléchargez pas le code entier. Télécharger un [mcve]. –
@JonathanMee "vous n'avez pas autant de membres de globLabel0.gl_pathv" Si vous voulez dire si mon objet globLabel0 est vide, j'ai un fichier texte 5923. Ici vous pouvez voir sur le lien: https://www.mediafire.com/?d883fgma1r4xp8x –