Código
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
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?