tendrias que hacer algo como:
Fijate de cualquier manera que estas mezclando C con C++, asique para la lectura deberias usar, para no complicarte:
Y revisa bien la estructura de tu objeto porque si es para una tarea te van a retar
EDITO: Mejor que irlo refactoreando a C++ empecemos a hacerlo de nuevo en C++ no te parece?
Código (cpp) [Seleccionar]
void cargar(Ptrcomponente &listas){
char nombre[20];
char nombre_1;
//nombre_1 = str.copy(nombre, 20, 5); intentando que no me tire basura
int cantidad;
char fabricante[20];
char fabricante_1 = str.copy(nombre, 20, 5);
int codigo;
Ptrcomponente nuevo;
FILE*Archivo;
fopen_s(&Archivo, "Base de datos.txt", "r+");
if (Archivo == NULL){ printf("ERROR"); }
else{
while (!feof(Archivo)){
fscanf(Archivo,"%s%i%s%i",nombre,&cantidad,fabricante,&codigo);
nuevo = new(componentes);
strncpy(nuevo->nombre,nombre,largo_maximo_nuevo_nombre);
......
Fijate de cualquier manera que estas mezclando C con C++, asique para la lectura deberias usar, para no complicarte:
Código (cpp) [Seleccionar]
std::string buffer;
std::ifstream Archivo("MiBaseDeDatos.txt");
std::cin.getline(archivo,buffer);
Y revisa bien la estructura de tu objeto porque si es para una tarea te van a retar

EDITO: Mejor que irlo refactoreando a C++ empecemos a hacerlo de nuevo en C++ no te parece?
