J'essaie de créer un itérateur pour parcourir mon fichier. Mon fichier est binaire et contient des valeurs int, donc à mon point de vue, cela devrait fonctionner comme ça. Mais je reçois des erreurs dit "utilisation invalide de membre de données" IntFile :: fichier "" Donc je ai marqué dans le code où je reçois des erreurs. Comment puis-je le gérer?Création d'une structure d'itérateur personnalisée pour travailler avec cstdio
#include <iostream>
#include <cstdio>
using namespace std;
class IntFile
{
public:
int index;
FILE* file; // Error here
IntFile() {}
~IntFile() {}
int mnumbers[10];
int mnumbers2[10];
int value;
// And this whole class does not work
class iterator
{
bool operator ++()
{
file = fopen ("text.txt", "r+b");
fseek (file, 4*index, SEEK_CUR);
fclose(file);
}
bool operator --()
{
file = fopen ("text.txt", "r+b");
fseek (file, (-4)*index, SEEK_CUR);
fclose(file);
}
/*
iterator begin()
{
return ;
}
iterator end()
{
return ;
}
*/
};
};
peut-être lié: https://stackoverflow.com/questions/46243549/going-through-file-using-iterators – NathanOliver
@NathanOliver pas exactement –
'iterator' n'a pas de membre de données nommé' file'. Le fait qu'il soit imbriqué dans 'IntFile' ne lui donne pas de connexion avec un objet' IntFile'. De plus, 'fseek' s'applique à l'objet ** FILE *' ** courant, pas au fichier sous-jacent. Ouvrir un fichier, le chercher et le fermer n'a aucun effet. –