Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - alpachino98

#1
Estoy intento usar SFML con el visual studio IDE 2019 y me saltan errores de compilación cuando uso algo de dentro de la libreria. Si la importo y no la usa no me da error, pero en cuando uso algun objeto o metodo no me deja compilar.
Me salta error solo haciendo esto:
#include<SFML\Graphics.hpp>
#include <time.h>
using namespace sf;


int main()
{
srand(time(0));
RenderWindow app(VideoMode(400, 533), "Game!");
app.setFramerateLimit(60);

return 0;
}


He añadido la carpeta de SFML en las propiedades del proyecto, tanto en el aparto de C++ como en el del Vinculador

Los errores que me salen son:
Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error LNK2019 sÝmbolo externo "__declspec(dllimport) public: __thiscall sf::String::String(char const *,class std::locale const &)" (__imp_??0String@sf@@QAE@PBDABVlocale@std@@@Z) sin resolver al que se hace referencia en la funci¾n _main Jump C:\Users\user\source\repos\Games\Jump\Jump\main.obj 1


Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error LNK2019 sÝmbolo externo "__declspec(dllimport) public: __thiscall sf::String::~String(void)" (__imp_??1String@sf@@QAE@XZ) sin resolver al que se hace referencia en la funci¾n _main Jump C:\Users\userl\source\repos\Games\Jump\Jump\main.obj 1


Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error LNK2019 sÝmbolo externo "__declspec(dllimport) public: __thiscall sf::VideoMode::VideoMode(unsigned int,unsigned int,unsigned int)" (__imp_??0VideoMode@sf@@QAE@III@Z) sin resolver al que se hace referencia en la funci¾n _main Jump C:\Users\user\source\repos\Games\Jump\Jump\main.obj 1


Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error LNK2019 sÝmbolo externo "__declspec(dllimport) public: void __thiscall sf::Window::setFramerateLimit(unsigned int)" (__imp_?setFramerateLimit@Window@sf@@QAEXI@Z) sin resolver al que se hace referencia en la funci¾n _main Jump C:\Users\user\source\repos\Games\Jump\Jump\main.obj 1


Gravedad Código Descripción Proyecto Archivo Línea Estado suprimido
Error LNK1120 4 externos sin resolver    Jump C:\Users\juser\source\repos\Games\Jump\Debug\Jump.exe 1
#2
Desarrollo Web / No abre html desde javascript
19 Febrero 2019, 16:57 PM
Hola,
el problema que tengo es que no consigo abrir un html desde javascript usando la funcion "cargar". Quiero que se abra el index donde esta el menu y luego se añada debajo la pagina que se pulse en el menu. Para simplificarlo dejo un ejemplo sencillo que tampoco funciona:

HTML
<!DOCTYPE html>
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src = "./js/libCapas.js"></script>
    </head>
    <body onload="Cargar('inicio.html','cuerpo')">
        <div>
            <table>
                <tr>
                    <td><a href="#" onclick="Cargar('inicio.html','cuerpo')">Inicio</a></td>
                    <td><a href="#" onclick="Cargar('iniciar_sesion.html','cuerpo')">Iniciar Sesion</a></td>
                   
                </tr>
           
            </table>
        </div>
        <div id="cuerpo"></div>
    </body>
</html>

HTML
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
    <table>
    <tr>
        <div>TODO write content</div>
        </tr>
     </table>
    </body>
</html>


javascript
function invokeScript(divid)
{
var scriptObj = divid.getElementsByTagName("SCRIPT");
var len = scriptObj.length;
for(var i=0; i<len; i++)
{
var scriptText = scriptObj[i].text;
var scriptFile = scriptObj[i].src;
var scriptTag = document.createElement("SCRIPT");
if ((scriptFile != null) && (scriptFile != "")){
scriptTag.src = scriptFile;
}
scriptTag.text = scriptText;
if (!document.getElementsByTagName("HEAD")[0]) {
document.createElement("HEAD").appendChild(scriptTag);
}
else {
document.getElementsByTagName("HEAD")[0].appendChild(scriptTag);
}
}
}
                       
function nuevaConexion()
{
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function Cargar(url, capa)
{
var contenido = document.getElementById(capa);
var conexion = nuevaConexion();
conexion.open("GET", url, true);
conexion.onreadystatechange=function()
{
if(conexion.readyState == 4)
{
contenido.innerHTML = conexion.responseText;
invokeScript(document.getElementById(capa));
}
}
conexion.send(null);                               
}
                                               
function CargarForm(url, capa, valores)
{
var contenido = document.getElementById(capa);
var conexion = nuevaConexion();
conexion.open("POST", url, true);
conexion.onreadystatechange=function()
{
if(conexion.readyState == 4)
{
contenido.innerHTML = conexion.responseText;
invokeScript(document.getElementById(capa));
}
};
conexion.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
conexion.send(valores);
}

function ProcesarForm(formulario, url, capa)
{
var valores="";
for (i=0; i<formulario.elements.length;i++)
{
var nombre = formulario.elements[i].name;
if (nombre!="")
{
if (!((formulario.elements[i].type == "radio") && (!formulario.elements[i].checked)))
{
valores += formulario.elements[i].name + "=";
valores += formulario.elements[i].value + "&";
}
}
}
CargarForm(url, capa, valores);
}

function cargaInicial()
{                           
Cargar('menu.html','menu');
Cargar('inicial.html','capa1');
}



Si alguien me puede decir como consigo cargar el segundo html debajo del primero, usando ese javascript

Gracias.
#3
Hola, quisiera saber como ejecutar un comando en un terminal sin usar system(), ya que según tengo entendido es una llamada al sistema operativo y no es una buena practica. Quisiera saber como se hace tanto en POSIX como en windows. Como ultima duda, aunque no tenga nada que ver,  me gustaría saber cuantos hilos te permiten los SO usar como máximo o partir de cuantos hilos deje de ser contraproducente. Gracias.
#4
Hola buenas,
Tengo un problema al instalar el ubuntu desde un usb booteable. Uso rufus para instalar ubuntu 18.04 lts, no me da ningun problema a la hora de instalar (lo he probado tanto en ISO como en DD), cuando arranco el usb todo funciona correctamente hasta que llega la pantalla de elegir la partición (hay veces que ni siquiera llega a mostrarse esa pantalla) porque se queda congelado. Acabo de probar con debian (que ni siquiera ha arrancado, me ha saltado una pantalla negra con un recuadro rojo), con fedora y open suse. No va ninguno, todos se quedan colgados. No entiendo nada. Con todos los ordenadores que he instalado cualquier linux me ha ido a la primera.

El portatil es:

Asus 556UA
Intel i7-6500U
12GB RAM
#5
Hola,
Si alguien puede ayudarme en como intercambiar dos valores de una lista (debe estar ordenada alfabéticamente). Esta lista contiene objetos de una clase contacto.
Les dejo por aquí los atributos de la clase contactos.
private:
string nombre;// Cadena con el contenido de la palabra
int nTlf;


Atributos de la clase Agenda ( es la que contiene la lista).
private:
list<Contacto> listapal;// La lista STL con los contactos de la agenda.
bool encuentraContacto(const string &, list<Contacto>::iterator &);

Este es el método que debe ordenar la lista <listapal>.
void/*list<Contacto>*/ Agenda:: ordenaListas()
{
list<Contacto> :: iterator aux;
Contacto contI;
Contacto contJ;

for (list<Contacto>::iterator it=listapal.begin();it != listapal.end(); it++)
{
for (list<Contacto>::iterator jt=it;jt!=listapal.end(); jt++)
{
jt++;
contI=*it;
contJ=*jt;

if(!(contI.getNombre()<=contJ.getNombre()))
{
//Primer intento
/* *aux=*it;
*it=*jt;
*jt=*aux;*/

                                //Segundo intento
pos->setNombre(it->getNombre());
pos->setNumeroTelefono(it->getNumeroTelefono());

it->setNombre(jt->getNombre());
it->setNumeroTelefono(jt->getNumeroTelefono());

jt->setNombre(pos->getNombre());
jt->setNumeroTelefono(pos->getNumeroTelefono());

}
}}


Les he puesto las dos cosas que creo que más sentido tendrían. El problema es que al compilar y ejecutarlo se queda congelado cuando intenta ordenar la lista.

Lo que pretendo hacer es usar el método de la burbuja. Les dejo una idea de lo que quisiera hacer pero con iteradores.
for (i=0; i<n-1; i++)
{
   for (j=i+1; j<n; j++)
  {
    if(V[i]>V[j])
    {
     aux = V[i];
     V[i] = V[j];
     V[j] = aux;
    }
  }
}



#6
Java / Ayuda para compilar en Java
7 Diciembre 2018, 22:05 PM
Tengo un código que debe hacer de cliente FTP, estoy usando: http://commons.apache.org/proper/commons-net/download_net.cgi

Para poder usar la clase FTPClient. La pregunta es como se compilaría el código desde un terminal, es que yo pruebo con javac -classpath .\commons-net-3.6.jar .\FicherosFTP.java pero no funciona.

import java.io.*;
import org.apache.commons.ftp.FTPClient;



public class FicherosFTP{
public static void main(String[] args) {
      FTPClient client = new FTPClient ();

      String sFTP="";
      String sUser = "";
      String sPassword= "";

   try {
       client.connect(sFTP);
       boolean login =  client.login(sUser, sPassword);
       client.logout();
       client.disconnect();
   } catch (Execption e) {
       
   }
   }
}
#7
Soy nueva en base de datos y tengo que crear una serie de tablas y sus relaciones. Lo primero que tengo que hacer son estas dos tablas y la relación que las une:


No entiendo muy bien donde tengo que colocar las foreign key, si en las tablas relacionadas o en la relación. Aquí pongo como lo he hecho yo que ha sido colocando una clave foránea con un nombre en la tabla relacionada y otra clave en la relación. No se muy bien como afecta que sea una relación 1,1 -> 1,n

CREATE TABLE MULTIUSOS (
    id_multiusos number,
    megafonia varchar(20),
    red varchar(5) default 'FALSE',   
    codigo number,
    nombre_salas varchar(50),
    capacidad number,
    tipo varchar(2),
   
    constraint CK_red_valor check (red ='TRUE' or red ='FALSE'),
    constraint multiusos_pk primary key (id_multiusos)
    );

CREATE TABLE RESERVAS (
    id_reserva number,
    fehca date,
    hora_ini date,
    hora_fin date,
    evento varchar(20),
    id_multiusos number,
    id_empleado number,
   
    constraint reservas_pk primary key (id_reserva),
    constraint multiusos_fk
        foreign key( id_multiusos)
            references MULTIUSOS(id_multiusos),
    constraint empleado_fk
        foreign key (id_empleado)
            references EMPLEADOS(id_empleado)
    );

CREATE TABLE RESERVAS_MULTIUSOS (
    id_reservas number,
    id_multiusos number,
   
    constraint rel_reservas_multiusos_fk
        foreign key (id_reservas)
            references RESERVAS(id_reserva),
    constraint rel_multiusos_reservas_fk
        foreign key(id_multiusos)
            references MULTIUSOS(id_multiusos)
    );


Si alguien puede sacarme de dudas :huh:...gracias.
#8
Programación C/C++ / ¿Con que puedo seguir en C++?
15 Noviembre 2018, 19:38 PM
Me gustaría saber que es lo siguiente que podría aprender en c++, mi nivel llega hasta  templates, punteros, POO...
Las interfaces gráficas y con protocolos las hago con java y programación en sistemas operativos me la controlo con C. Si tiene alguna idea de lo que podría hacer ahora con c++.  :P
#9
Programación C/C++ / AYUDA CON RECURSIVIDAD
8 Enero 2018, 13:08 PM
Hola buenas, tengo un problema con una función recursiva, se mete pero nunca sale. No se si tengo un error en la sintaxis o en la condición de parada. Si alguien ve algún fallo y puede ayudarme...Gracias

void FncOpenPoint(Tablero Partida, int fil, int col)
{
if(fil>0&&fil<FIL&&col>0&&col<COL)
{
if(Partida[fil][col].mine==false)
if(Partida[fil][col].num=0&&Partida[fil][col].flag==false)
{
Partida[fil][col].visible=true;
/*for(int i=fil-1;i<fil+1;i++)
for(int j=col-1;j<col+1;j++)
FncOpenPoint( Partida,  fil,  col); */
    FncOpenPoint( Partida,  fil-1,  col-1);
FncOpenPoint( Partida,  fil-1,  col);
FncOpenPoint( Partida,  fil-1,  col+1);
FncOpenPoint( Partida,  fil,  col-1);
FncOpenPoint( Partida,  fil,  col+1);
FncOpenPoint( Partida,  fil+1,  col-1);
FncOpenPoint( Partida,  fil+1,  col);
FncOpenPoint( Partida,  fil+1,  col+1);
}
else
if(Partida[fil][col].mine!=true)
Partida[fil][col].visible=true;
}
return;
}
}


Como es un buscaminas tiene que ir recorriendo la matriz de forma recursiva hasta que encuentre una mina o llegue al limite del tablero. Se exige que sea de forma recursiva. Gracias
#10
Creo que no termino de entender esto de los iteradores porque no entiendo que error que me da, si alguien me puede decir que es lo que entendido mal...El programa es un diccionario, formado por dos clases: la clase palabra y la clase diccionario. La clase diccionario es una list formada de palabras. Mi error viene cuando intento añadir una nueva palabra al diccionario y me salta este error:

[Error] no match for 'operator<' (operand types are 'Palabra' and 'Palabra')

Y se abre una pagina con esto escrito:

    if (*__first2 < *__first1)

Aquí dejo los dos métodos que uso para añadir una palabra:
bool Diccionario::encuentraPalabra(const string &s, list<Palabra>::iterator &pos)
{
bool encontrado=false;
Palabra aux;
pos=listapal.begin();
while (pos!=listapal.end())
{
aux=*pos;
if(aux.getContenido()==s)
{
encontrado=true;
break;
}
pos++;
}

return encontrado;
}

void Diccionario :: anyadePalabra(const string &s)
{
list<Palabra>::iterator pos;
Palabra aux;
bool existe;
existe=encuentraPalabra(s, pos);
if(existe==true)
{
aux=*pos;
aux.incNumApariciones();
}

else //el error esta aqui
{
listapal.insert(pos,aux);
listapal.sort();
}

}

#11
Windows / Recuperar carpeta borrada (URGENTE!!!)
21 Noviembre 2017, 00:38 AM
Llevo todo el día de hoy terminando un proyecto (en dev-C++, por si sirve de algo) que me había copiado en el escritorio desde un pen (que había hecho los .h y poco más) he intentado mover-lo a la carpeta donde tengo todos los proyectos y sin querer lo he copiado y tonto de mi le he dado a crtl+z y no se que ha pasado si he pulsado demasiado tiempo o algo pero se ha ido el original también . Llevo unas 4 horas probando con todos los programas que he encontrado en internet de recuperación pero me da miedo seguir por si se sobrescriben los archivos o por si siguen por algún rincón en la ram. El proyecto es para la universidad, de ahí la desesperación xd

Si alguien sabe algún modo de como recuperar-lo por complicado o largo que sea.
Muchas gracias.  :D
P.D no esta en la papelera
#12
He probado varios programas antes para ubuntu y fedora pero no me gustaron y además no tenían la opción para instalar kali linux. Me descargué hace poco el PowerISO ( de la página oficial) y sobre quitar el todas las opciones para instalar otros programas aun me instaló una extensión en el navegador y cuando pasé el antivirus me encontró 3 virus ( 2 de ellos troyanos, no se si serian de antes pero mucha casualidad sería), en resumen no lo recomiendo para nada. Si saben de alguno o que alguno que hayan usado que les funcione bien díganmelo. Gracias!  ;D
#13
Hola buenas.
Mi problema es que estoy haciendo un función en la que se utilizan las teclas W,A,S,D para moverse por un tablero. La cosa viene cuando intento hacer que al pulsar la telca T salga del programa ( como un boton para salir del juego). Seria facil si la funcion en el main no estuviera dentro de un bucle que le obliga a seguir jugando hasta que la condicon de terminar sea verdadera por medio de otra funcion que revisa si ha terminado el juego. Mi idea era poner algun system () como los system ("pause") pero algo que fuera system ("exit") o algo. Sino tendre que cambiar la funcion para que sea un bool o añadir mas parametros y seria tedioso y bastante largo.

Les comparto la funcion por si les sirve de algo ( recuerden que esta dentro de un while). Ignoren todso los case excepto el case T:
void EditVector (int ** tablero ,int numfil,int numcol) // en nuestro juego te puedes mover usando las teclas W,A,S,D lo cual nos parece mucho mas comodo
{
char d;
int i,j,aux,j2,f,c;
//system("cls");
for(i=0; i<numfil;i++)
for(j=0;j<numcol;j++)
{
if(tablero[i][j]==0)
{
f=i;
c=j;
}
}
cout<<"Su posicion actual es: ";
cout<<f<<"  "<<c<<endl;
cout<<"Utilize las teclas W,A,S,D para mover el espacio por el tablero."<<endl;
cin>>d;
switch (d)
{
case 'w': case 'W':

if (f==0)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=f-1;
aux=tablero[j2][c];
tablero[f][c]=aux;
tablero[j2][c]=0;
break;
case 's': case 'S':
if (f==numcol-1)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=f+1;
aux=tablero[j2][c];
tablero[f][c]=aux;
tablero[j2][c]=0;
break;
case 'a': case 'A':
if (c==0)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=c-1;
aux=tablero[f][j2];
tablero[f][c]=aux;
tablero[f][j2]=0;
break;
case 'd': case 'D':
if (c==numfil-1)
{
cout<<"No se puede realizar el movimiento."<<endl;
system("pause");
break;
}
j2=c+1;
aux=tablero[f][j2];
tablero[f][c]=aux;
tablero[f][j2]=0;
break;
case 't': case 'T':
system("exit");
break;
}

}
#14
El programa debe realizar una búsqueda dentro de varios vectores, de 10,de 100, de 1000...el problema es que el vector antes tenia una probabilidad de exito de 1/2 porque solo creaba vectores con numeros pares. Lo que tengo que hacer ahora es conseguir que la probabilidad sea de 3/4.

Esta era la función crear vector original:
void CrearVector (Vector v, int n)
{
int i;
   
    // Guarda en el vector los números pares incluidos en el intervalo [0,2n[
for ( i = 0; i < n; i++ )
v[i] = i*2;
}


Y esta nuestra modificación:

void CrearVector (Vector v, int n)
{
int i=0;
    cout<<n<<endl;
    // Guarda en el vector los números pares incluidos en el intervalo [0,2n[

while( i<(0.75*n))
{
if (i%2==0)
v[i]=i*2;
else
v[i] = i;
i++;
}
for ( i; i < n; i++ )
v[i]=i*2;

for(i=0;i<n;i++)
cout<<v[i]<<" ";

}


En nuestra modificación salen tanto numeros pares como impares pero hasta 3/4 del tamaño de nuestro vector, el problema es que salen desordenados y tenemos que realizar una busqueda binaria. Si alguien sabe como hacer que salgan ya ordenados o otro metodo para que la probabilidad sea de 3/4. Gracias de antemano :P
#15
Estoy haciendo un proyecto que es como una biblioteca y estoy usando ficheros. Necesito tener ficheros de texto (.txt) para que el programa los use para leer los datos y los vuelque en un vector, el problema es que estos .txt tienen que estar en la misma carpeta que el programa. Lo que me gustaría es que el .exe estuviera, por ejemplo, en el escritorio y el txt en documentos, de hecho no se  si es posible pero si lo es y alguien me puede decir como se hace estaría genial  :)

Por si sirve de algo, así es como abro los ficheros:


f_in_fichero.open("ejemplo.txt");
if(f_in_fichero.fail())
{
cout<<"Error"<<endl;
else
{
Fnc......(lo que quiera hacer)
f_in_fichero.close();
}


f_in_fichero es el ifstream que he declarado (uso la biblioteca <fstream>)




#16
Foro Libre / En que idioma piensan los sordos
22 Marzo 2017, 01:26 AM
Estaba en mi piso con mis compañeras cuando me ha cruzado la cabeza la pregunta en que idioma piensan los sordos y pronto hemos llegado a la conclusión de que piensan en el idioma de signos. Después nos hemos metido más adentro en el tema y hemos llegado a otra gran pregunta. ¿Si un sordo no aprende el idioma de los signos, ni este ni ningún idioma (en este caso daría igual si es sordo que no xd),en que idioma piensa?
#17
Programación C/C++ / Ayuda ficheros de c++
16 Enero 2017, 11:03 AM
Estoy haciendo el trabajo final de asignatura, tengo que crear una biblioteca. La primera función necesito que lea los usuarios de un fichero y los guarde como vectores, el problema es que la función para leer los usuarios se mete en un bucle infinito. Aquí les dejo el código:

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

struct fecha
{
int dia;
int mes;
int año;
};

struct usuario
{
int DNI;
string nombre;
string apellidos;
string direccion;
string ciudad;
int codigo_postal;
string email;
int telefono;
fecha nacimiento;
};

struct ubicacion
{
int pasillo;
int estanteria;
};

struct libros
{
string ISBN;
string titulo;
string autor;
ubicacion ubicacion;
int prestado;
int valoracion;
};

struct prestamos
{
int identificador;
string ISBN;
int DNI;
string entrega;
string devolucion;
};
  const int MAXUsuarios=5000;
  const int MAXLibros=1000;
  const int MAXPrestamos=10000;
  typedef usuario VUsuario [MAXUsuarios];
  typedef libros VLibros [MAXLibros];
  typedef prestamos VPrestamos [MAXPrestamos];
 
  void FncMenu (int&  ,int&);
  void FncLeerUsuarioFich (ifstream&, VUsuario&, int&);
  void FncLeerLibrosFich (ifstream&, VLibros, int&);
  void FcnLeerPrestamosFich (ifstream&, VPrestamos, int&);

int main ()
{

VUsuario vu;
VLibros vl;
int tam;
ifstream f_in;  
ofstream f_out;
usuario u;
int opcion,subopcion;
//string nombre;
//int tel;
do{
FncMenu(opcion, subopcion);
switch (opcion)
{
case 1:
{
f_in.open("usuarios.txt");
if(f_in.fail())
{ cout<<"Error abriendo fichero usuarios"<<endl; }
else
{ FncLeerUsuarioFich(f_in,vu,tam);
f_in.close();}
break;
}
case 2:
{
f_in.open("libros.txt");
if(f_in.fail())
{ cout<<"Error abriendo fichero usuarios"<<endl; }
else
{ FncLeerLibrosFich(f_in,vl,tam);
f_in.close();}
break;
}
}
}while (opcion !=0);
return 0;
}
void FncMenu ( int& opcion, int& subopcion)
{
do{
cout<<endl;
cout<<"----------MENU----------"<<endl;
cout<<"1.Leer datos de un fichero "<<endl;
cout<<"2.Dar alta"<<endl;
cout<<"3.Dar de baja a un usuario"<<endl;
cout<<"4.Mostrar informaci\242n"<<endl;
cout<<"5.Guardar informaci\242n actual de la biblioteca"<<endl;
cout<<"6.Buscar informaci\242n"<<endl;
cout<<"7.Mostrar en pantalla la informaci\242n"<<endl;
cout<<"8.Volcar informacion del informe"<<endl;
cout<<"0.Salir"<<endl;
cout<<"-------------------------------------------------"<<endl;
cin>>opcion;

switch (opcion)
{
case 2:cout<<"1.Dar alta usuario"<<endl;
cout<<"2.Dar alta libro"<<endl;
cout<<"3.Dar alta prestamo"<<endl;
cin>>subopcion;
break;
case 4 :cout<<"1.Mostrar informaci\242n de todos los usuarios"<<endl;
cout<<"2.Mostrar informaci\242n de todos los libro"<<endl;
cout<<"3.Mostrar informaci\242n prestamos"<<endl;
cin>>subopcion;
break;
case 6 :cout<<"1.Buscar la informaci\242n de un usuario"<<endl;
cout<<"2.Buscar informaci\242n de un libro"<<endl;
cout<<"3.Buscar informaci\242n de un prestamo"<<endl;
cin>>subopcion;
break;

}
}while (opcion<0 || opcion >8);

}
void FncLeerUsuarioFich(ifstream& f_in      , VUsuario& vu   , int&  tam   )
{
  while(!f_in.eof())
  {
     f_in>>vu[tam].DNI;
   getline(f_in,vu[tam].nombre);
getline(f_in,vu[tam].apellidos);
getline(f_in,vu[tam].direccion);
getline(f_in,vu[tam].ciudad);
f_in>>vu[tam].codigo_postal;
   getline(f_in,vu[tam].email);
   f_in>>vu[tam].telefono;
   f_in>>vu[tam].nacimiento.dia;
   f_in>>vu[tam].nacimiento.mes;
   f_in>>vu[tam].nacimiento.año;
  tam++;
  cout<<"leido";

  };
}

Si alguien me puede ayudar porfavor..... :-\


· Los códigos deben ir en etiquetas GeSHi
>Lee las reglas
-Engel Lex