Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2018, 07:39
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 1 mes
Puntos: 3
No puedo escribir en archivo correctamente

Hola amigos, estoy intentando crearme una funcion que escriba en la posicion deseada de un archivo y para ello he probado esto:
Código PHP:
void SendToFile (bytesentenceint sizeuint32_t poschar *path) {
    
std::ofstream ostr (path);
    if (
ostr) {
        
std::streambuf pbuf ostr.rdbuf();
        
//Aqui obtengo el tamaño del archivo
        
std::streamsize sizeStream pbuf->pubseekoff(0ostr.end);
        
//Me posiciono en el lugar donde quiero escribir en el archivo
        
pbuf->pubseekoff(posostr.beg);
        
//Escribo lo que quiero en el archivo usando el stream
        
pbuf->sputn (sentence,size);
        
ostr.close();
    }

Y tambien esto:
Código PHP:
void SendToFile (bytesentenceint sizeuint32_t poschar *path) {
    
std::ofstream ostr (path);
    if (
ostr) {
        
//Obtengo el tamaño del archivo
        
ostr.seekp(0,ios_base::end);
        
int size_file=ostr.tellp();
        
//Me posiciono en la posicion del archivo donde quiero escribir
        
ostr.seekp(pos,ios_base::beg);
        
//Escribo en el archivo lo que quiero
        
ostr.write(sentence,size);
        
ostr.close();
    }

En ambos casos el tamaño del archivo que obtengo es 0 pero no lo es, ni mucho menos, aunque cuando escribo en el si que obtengo un archivo en el que solo está lo que he escrito. ¿Alguien me puede ayudar?