Hola amigos, tengo un proyecto de la universidad y me he encontrado con un problemita tengo el codigo siguiente :
Código:
/*
Datos del Vehiculo
Solicita los datos del vehiculo
Esta estructura esta declarada en el archivo cabecero "proyecto.h"
struct Vehiculo{
char placa[6];
char marca[10];
char modelo[10];
char color;
unsigned long cedula;
};
*/
#include "proyecto.h"
Vehiculo datosVehiculo(unsigned long cedula){
Vehiculo v; // declaracion de una estructura tipo vehiculo ya deficina en el proyecto.h
// solicita los datos del vehiculo
cout<< "\n\n\t\t Vehiculo \n\n"
<<"=> Ingrese los datos del Vehiculo \n\n";
cout<<"\t Placa: ";
cin.getline(v.placa, 6);// debo colocar uno mas grande que el campo, de lo contrario solo lee 4 caracteres y no lee los datos siguientes
cin.seekg(0, ios::end);
cin.ignore(100,'\n');
cout<<"\t Marca: ";
cin.getline(v.marca,10);
cout<<"\t Modelo: ";
cin.getline(v.modelo,10);
cout<<"\t Color: ";
cin.getline(v.color,3);
v.cedula = cedula;
cout<< endl << endl;
fstream Escr_Lect("Vehiculo.bin", ios::out | ios::in | ios::binary | ios::app);
Escr_Lect.write((char*)(&v), sizeof(Vehiculo));
cout <<"Placa: " << v.placa;
//prueba del registro creado
Vehiculo v2;
unsigned long longarchivo(Escr_Lect.tellg());
Escr_Lect.seekg( longarchivo - sizeof(Vehiculo));
//Escr_Lect.seekg(0, ios::beg);
Escr_Lect.read( (char*)(&v2), sizeof(Vehiculo));
cout<<"\n Placa : " << v2.placa
<<"\n Marca : " << v2.marca
<<"\n Modelo: " << v2.modelo
<<"\n Color : " << v2.color
<<"\n Cedula: " << v2.cedula
<< endl << endl;
// retorna el registro del vehiculo en una estructura tipo Vehiculo
return v;
}
con este codigo obtengo la pantalla siguiente:
--------------------------------------------------------------
Código:
Vehiculo
=> Ingrese los datos del Vehiculo
Placa: L4423
// qui debo precionar enter 2 veces, no kiero q esto pase
Marca: Marca
// qui debo precionar enter 2 veces, no kiero q esto pase
Modelo: Modelo
// qui debo precionar enter 2 veces, no kiero q esto pase
Color: RO
//esta es la salida
Placa: L4423Marca
Placa : L4423Marca
Marca : Marca
Modelo: Modelo
Color : RO
Cedula: 2240031513
Presione una tecla para continuar . . .
---------------------------------------------------------
Al introducir los datos primero imprimo la placa.
aqui ya pueden observar que la placa se guarda junto con la marca.
luego escribo la estructura en el archivo, leo el ultimo registro y lo imprimo y tambien esta pasando lo de la placa y la marca unidos en un mismo campo.
espero alguien pueda ayudarme pronto.
saludos,