Kien es el superprogramador q sabe porq ocurre esto??por favor, es urgente

Patri
16 de Enero del 2004
Hola!!Estoy estudiando telematica y me han pedido un proyecto q se basa en ficheros,estoy de los nervios porq no m sale y se me acaba el tiempo, tengo echa una parte pero hay un problema, me lee todos los ficheros menos uno...y de los q me lee solo me lee enteros 3, los otros 5 lee solo un trozo...aki va el programa, por favor si alguien sabe por que es que me lo diga escribiendome a: [email protected]
Por cierto es en c++.

#include <iostream.h>
#include <stdlib.h>
#include <fstream.h>
#include <string>
#include <ctype.h>

void ProcesarCuento (string &palabra, int &tam);
void ModificarPalabra (string &palabra, int &tam);
void QuitarAcentos (string &palabra, int &tam);


int main()
{
ofstream indice;
ifstream lista, cuento;
string NombreCuento, palabra;
int tam;

indice.open("c:\tmp\indice.txt");
if(!indice)
cout << "Error al abrir el ficheron";
else
{
lista.open("c:\tmp\lista.dat");
if(!lista)
cout << "Error al abrir el fichero2n";
else
{
while (lista >> NombreCuento)
{
cuento.open(NombreCuento.c_str());
cout << "n El fichero leido es: " << NombreCuento << endl;
if(!cuento)
cout << "Error al abrir el fichero3n";
else
{
while (cuento >> palabra)
{
tam = palabra.length();
ProcesarCuento (palabra, tam);
ModificarPalabra (palabra, tam);
QuitarAcentos (palabra, tam);
cout << palabra;
indice << palabra;
}
cuento.close();
}
}
lista.close();
}
}
indice.close();

system("PAUSE");
return 0;
}
void ProcesarCuento (string &palabra, int &tam)
{
int i;

for (i=0; i<tam; i++)
palabra[i] = toupper(palabra[i]);

return;
}
void ModificarPalabra (string &palabra, int &tam)
{
int i;

for (i=0; i<tam; i++)
{
if(int(palabra[i]) >= 33 && int(palabra[i]) <= 47)
{
palabra.erase(i,1);
}
if(palabra[i] == '?')
{
palabra.erase(i,1);
}
if(palabra[i] == '¿')
{
palabra.erase(i,1);
}
if(palabra[i] == ':')
{
palabra.erase(i,1);
}
if(palabra[i] == ';')
{
palabra.erase(i,1);
}
}
}
void QuitarAcentos (string &palabra, int &tam)
{
int i;
for(i=0; i<tam; i++)
{
if(palabra[i] == 'á')
{
palabra[i] = 'Á';
}
if(palabra[i] == 'é')
{
palabra[i] = 'É';
}
if(palabra[i] == 'í')
{
palabra[i] = 'Í';
}
if(palabra[i] == 'ó')
{
palabra[i] = 'Ó';
}
if(palabra[i] == 'ú')
{
palabra[i] = 'Ú';
}
if(palabra[i] == 'ü')
{
palabra[i] = 'Ü';
}
if(palabra[i] == 'ñ')
{
palabra[i] = 'Ñ';
}
}
}

Si se anula la función ModificarPalabra ocurre lo que he dicho antes
sino lo q sale son solo dos cuentos y a medias, los ficheros de los cuentos los podeis encontrar en: http://informatica.uv.es/docencia/iiguia/asignatu/2000/FP/
asi como el enunciado de la practica, se llama proyecto final.
y el fichero list.dat lo teneis q crear tb, escribiendo dentro los nombres de los cuentos, como explica en el enunciado.
Muchas gracias!!!!!

Joaquin
16 de Enero del 2004
En qué S. O. lo estás ejecutando ?. El problema es que no tienes bastante memoria para albergar los cinco ficheros.
Escribeme a mi dirección:
[email protected]