By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,918 Members | 2,246 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,918 IT Pros & Developers. It's quick & easy.

file binary and template

P: n/a
Hi.

class whith Function generic for write binary files:

#include <fstream>

#include <iostream>

using namespace std;

#ifndef _FICHERO_H_

#define _FICHERO_H_

class Fichero{

private:

fstream fichero;

public:

bool f_existe(string nombre);

void f_crear(string nombre, bool oculto);

template <typename T> void f_escribir(string nombre, T dato);

};

#endif

bool Fichero::f_existe(string nombre){

bool ok = false;
fichero.open(nombre.c_str(), ios::in);

if(fichero.good())

ok = true;

fichero.close();

return ok;

}

void Fichero::f_crear(string nombre, bool oculto = false){

string auxiliar;
fichero.open(nombre.c_str(), ios::out);

fichero.close();
if(oculto){

auxiliar = "attrib +h " + nombre;

system(auxiliar.c_str());

}

}

/************************************************** ****************NOT
WRITE********************************************* **************************
****************************/

template <typename T> void Fichero::f_escribir(string nombre, T dato){

fichero.open(nombre.c_str(), ios::out | ios::binary);

fichero.write(reinterpret_cast<const char*>(&dato), sizeof(T));

fichero.close();

}

Thanks.
Jul 22 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a

"opotonil" <op******@hotmail.com> wrote in message
news:c8**********@filemon1.isp.telecable.es...
| Hi.
|
| class whith Function generic for write binary files:

[snip]

What's the question ?

Cheers.
Chris Val
Jul 22 '05 #2

P: n/a
Hi.

The function: template <typename T> void Fichero::f_escribir(string nombre,
T dato) not write in the file and i donīt know that it is bad.

Thanks
------------------------Spanish--------------------------
Hola

La funcion: template <typename T> void Fichero::f_escribir(string nombre, T
dato) no escribe nada en el fichero y no se que es lo que falla, el dato que
tendria que guardar es una estructura.

Gracias y salu2.

PD: existe algun buen grupo de noticias, como este, en espaņol, mi ingles es
penoso.
Jul 22 '05 #3

P: n/a

"opotonil" <op******@hotmail.com> wrote in message
news:c8**********@filemon1.isp.telecable.es...
Hi.

The function: template <typename T> void Fichero::f_escribir(string nombre, T dato) not write in the file and i donīt know that it is bad.

Thanks


Try this

bool Fichero::f_existe(string nombre)
{
bool ok = false;
fichero.open(nombre.c_str(), ios::in);
if(fichero.good())
ok = true;
fichoro.clear(); // ***** clear the stream error state
fichero.close();
return ok;
}

If the file does not exist and you do not clear the error state, then
fichoro becomes unusable. You must always clear the stream after every error
if you want to use the stream again.

john
Jul 22 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.