Struct type “ne pas fournir un indice de l'opérateur”
Je suis en train de lire des valeurs à partir d'un fichier dans un tableau de structures. Cependant, je continue à recevoir des erreurs du compilateur qui me disent que mon struct, de Livres, de ne pas fournir un indice de l'opérateur et je suis perdu.
La structure est contenue dans un fichier d'en-tête tandis que la déclaration de la matrice de structs est dans main(). Voici la (les) code de l'fonctions.h fichier d'en-tête:
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct Books
{
int ISBN;
string Author;
string Publisher;
int Quantity;
double Price;
};
class functions
{
public:
void READ_INVENTORY(Books, int, int);
};
//Function definitions
void READ_INVENTORY(Books array, int max, int position)
{
ifstream inputFile;
inputFile.open("inventory.dat");
inputFile >> array[position].ISBN;
inputFile >> array[position].Author;
inputFile >> array[position].Publisher;
inputFile >> array[position].Quantity;
inputFile >> array[position].Price;
cout << "The following data was read from inventory.dat:\n\n"
<< "ISBN: " << array[position].ISBN << endl
<< "Author: " << array[position].Author << endl
<< "Publisher: " << array[position].Publisher << endl
<< "Quantity: " << array[position].Quantity << endl
<< "Price: " << array[position].Price << endl << endl;
}
Et voici le tableau de struct déclaration principale, ainsi que la façon dont il est utilisé:
#include <iostream>
#include <string>
#include <fstream>
#include "functions.h"
using namespace std;
int main()
{
const int MAX_SIZE = 100;
int size, choice;
functions bookstore;
Books booklist[MAX_SIZE];
cout << "Select a choice\n\n";
cin >> choice;
size = choice;
switch (choice)
{
case 1: bookstore.READ_INVENTORY(booklist[choice], MAX_SIZE, size);
break;
}
}
Une fois compilé, je reçois 10 messages d'erreur (un pour chaque fois que j'tableau[position]) que l'etat: d'erreur: type "Livres" n'est pas de fournir un indice de l'opérateur
Books array
n'est pas un tableau. Vous devriez passer Books* array
. Actuellement, vous venez de passer d'un Livre et qui a, évidemment, pas de []. BTW, vous devriez améliorer le nom de la variable, le tableau n'est pas très descriptif; comment books
?array
n'est pas un tableau...
OriginalL'auteur jshapy8 | 2015-04-01
Vous devez vous connecter pour publier un commentaire.
Il y a trop de problèmes dans votre code, vous définissez la
READ_INVENTORY
que la fonction globale. Si vous avez reçu qu'il y a une référence non définie àfunctions::READ_INVENTORY
. Un autre problème est que vous passerBooks
au lieu deBooks*
de sorte que vous ne pouvez pas utiliser la[]
opérateur.Modifier cette
à
Maintenant que nous avons changé le type de paramètre, modifiez cette ligne
à
OriginalL'auteur user3335