no match for "operator[]" (operand types are...)
Publicado por Jorge (5 intervenciones) el 11/12/2019 21:23:38
Buenas tardes.
Estoy escribiendo un programa que tiene que leer de un fichero ciertos datos, guardarlos y hacer algunas modificaciones. El caso es que al intentar meter el dato leído del fichero en un campo de un registro me sale este error ( no match for 'operator[]' (operand types are 'UsoBizi' and 'int') y tras bastante tiempo sigo sin poder solucionarlo. No comprendo muy bien donde está el error y esperaba que me pudieseis ayudar. La parte del código donde me da error es esta (en concreto al final del código, donde pone 'uso[0].idUsuario = identificador;' :
Y los campos del registro que he definido son estos:
Estoy escribiendo un programa que tiene que leer de un fichero ciertos datos, guardarlos y hacer algunas modificaciones. El caso es que al intentar meter el dato leído del fichero en un campo de un registro me sale este error ( no match for 'operator[]' (operand types are 'UsoBizi' and 'int') y tras bastante tiempo sigo sin poder solucionarlo. No comprendo muy bien donde está el error y esperaba que me pudieseis ayudar. La parte del código donde me da error es esta (en concreto al final del código, donde pone 'uso[0].idUsuario = identificador;' :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const int LONG_LINEA = 2000;
const int MAX_IDENTIFICADOR = 15;
const int MAX_USUARIOS = 1000;
struct UsoBizi uso[MAX_USUARIOS];
void leerUso(istream& f, UsoBizi& uso){
int numUsuario = 0;
int n = 0;
char linea[LONG_LINEA];
f.getline(linea,LONG_LINEA);
while(!f.eof()){
n = 0;
f.getline(linea,LONG_LINEA);
char identificador[MAX_IDENTIFICADOR];
for(int i = 0; linea[i] != '-'; i++){
identificador[n] = linea[i];
n++;
}
identificador[n - 4] = '\0';
uso[0].idUsuario = identificador;
}
}
Y los campos del registro que he definido son estos:
1
2
3
4
5
6
7
struct UsoBizi {
char idUsuario[MAX_LONG_LINEA];
char codEstInicio[MAX_LONG_LINEA];
char codEstFinal[MAX_LONG_LINEA];
};
Valora esta pregunta


0