Tengo dudas de mi código en C++
Quiero saber por qué mi programa no me deja registrar a más de dos personas en este código (este programa esta elaborado con base de datos con manejo de archivos):
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <windows.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
string nom,enfe,repre,edad,peso;
int nump=0,auxnp=0;
char opc;
bool encontrado=false;
void altas()
{
ofstream escritura;
ifstream consulta;
do
{
escritura.open("hospital.txt", ios::out | ios::app);
consulta.open("hospital.txt", ios::in);
if (escritura.is_open() && consulta.is_open())
{
bool repetido=false;
cout<<"\n";
cout<<"\tIngresa el numero del paciente: ";
cin>>auxnp;
consulta>>nump;
while (!consulta.eof())
{
consulta>>nom>>edad>>peso>>repre>>enfe;
if (auxnp==nump)
{
cout<<"\t\tYa existe ese numero...\n";
repetido=true;
break;
}
consulta>>nump;
}
if (repetido==false)
{
cout<<"\tIngresa el nombre del paciente: ";
cin>>nom;
cout<<"\tIngresa la edad del paciente: ";
cin>>edad;
cout<<"\tIngresa el peso del paciente: ";
cin>>peso;
cout<<"\tIngrese el nombre de su representante: ";
cin>>repre;
cout<<"\tIngrese la enfermedad del paciente: ";
cin>>enfe;
escritura<<auxnp<<" "<<nom<<" "<<edad<<" "<<peso<<" "<<repre<<" "<<enfe;
cout<<"\n";
cout<<"\n\tRegistro agregado...\n";
}
cout<<"\n\tDeseas ingresar otro paciente? (S/N): ";
cin>>opc;
}
else
{
cout<<"El archivo no se pudo abrir \n";
}
escritura.close();
consulta.close();
}while (opc=='S' or opc=='s');
}