elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con fichero binario en estructura
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con fichero binario en estructura  (Leído 1,734 veces)
phantoxG

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema con fichero binario en estructura
« en: 30 Noviembre 2016, 17:29 pm »

Quiero pasar una estructura de 18 bytes ( un char de 10, un float y un int) pero al llamar la funcion sizeof(); me dice que el tamaño es 20 y no se por que
Os dejo el codigo por aqui, la funcion es  bool guarda

Código:
#include<iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <fstream>

using namespace std;

bool ComprobarDNI(char dni[10]){  
int letras=0;
int numero=0;
string letrasdni="TRWAGMYFPDXBNJZSQVHLCKE";
int numerodni=stoi(dni);
int len= strlen(dni);
if(len!=9){
return false;
}
for(int i=0;i<len;i++){
if(isdigit(dni[i])){
numero++;
}
if((numero==8) && ((isdigit(dni[i])!=true))){
letras++;
}
}
if(numero==8 && letras==1){
if(letrasdni[numerodni % 23]==dni[8]){
cout<<"DNI correcto"<<endl;
return true;
}
else{
cout<<"DNI incorrecto"<<endl;
return false;
}
cout<<"DNI Correcto"<<endl;
}
else{
return false;
}
}


struct Alumno{
char dni[10];
int edad;
float nota;

void set(){
cout<<"Introduza dni del Alumno"<<endl;
cin>>dni;
while(ComprobarDNI(dni)==false){
cout<<"DNI erroneo, pruebe otra vez"<<endl;
cin>>dni;
}
cout<<"Introduzca edad"<<endl;
cin>>edad;
cout<<"Introduza nota"<<endl;
cin>>nota;
}
void print(int numero){
cout<<"Alumno numero "<<numero<<endl;
cout<<"DNI: "<<dni<<endl<<"Edad: "<<edad<<endl<<"Nota: "<<nota<<endl<<endl;
}
};

#ifdef MODOTEXTO
bool guarda (string ruta_fichero, Alumno v[10], int nal){
ofstream file;
file.open("fichero.txt");
if(file.is_open()==false){
cout<<"Error; El fichero no se pudo abrir"<<endl;
return false;
}
for(int i=0; i<nal;i++){
file<<v[i].dni<<" "<<v[i].edad<<" "<<v[i].nota<<endl;
}
return true;
}

int lee(string ruta_fichero, Alumno v[10]){
int leidos=0;
ifstream file;
file.open(ruta_fichero);
if(file.is_open()==false){
cout<<"Error; El fichero no se pudo abrir"<<endl;
system("pause");
}
while(file.eof()==false){
if(file>>v[leidos].dni>>v[leidos].edad>>v[leidos].nota){
leidos++;
}
}
}

#else
bool guarda(string ruta_fichero, Alumno v[10], int nal){
ofstream file;
file.open(ruta_fichero);
if(!file.is_open()){
return false;                            
}
file.write((char*) &v[0], 10*sizeof(Alumno));   EL PROBLEMA ESTA AQUI
}

#endif


« Última modificación: 30 Noviembre 2016, 17:34 pm por phantoxG » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MOD] fichero binario
Programación C/C++
prosco 1 2,458 Último mensaje 17 Mayo 2011, 23:31 pm
por willyhunting
RAR Estructura del fichero
Ingeniería Inversa
paulagarcum 6 3,643 Último mensaje 27 Abril 2013, 12:22 pm
por paulagarcum
Almacenar datos de un fichero en una estructura
Programación C/C++
moralescmj 4 2,396 Último mensaje 26 Enero 2014, 15:30 pm
por moralescmj
Acceso en fichero binario en C
Programación C/C++
JHodges 1 1,520 Último mensaje 17 Junio 2015, 01:01 am
por ivancea96
[ESTRUCTURA DE DATOS] Árbol binario [C++]
Programación C/C++
2Fac3R 0 1,813 Último mensaje 29 Julio 2015, 20:48 pm
por 2Fac3R
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines