Muy buenas amigos,
para un ejercicio me piden que lea un txt que tenga la siguiente estructura:
nombre # renta nota
a partir de este txt, tengo que filtrar por los que tengan una renta menor que x (por ejemplo 10.000) y solo esos guardarlos en un archivo binario.
De momento lo que tengo hecho es lo que veis abajo, lo unico que he conseguido es que si pongo un "cout" pinto todas las lineas del txt, pero no consigo filtrar por el segundo valor y meter todo lo que cuadre en un archivo binario...
En el código que tengo quería probar a sacar el único nombre que tenia con el valor 6.000 pero no lo hace...
me podeis ayudar?
gracias!!
archivo .h:
archivo cpp
para un ejercicio me piden que lea un txt que tenga la siguiente estructura:
nombre # renta nota
a partir de este txt, tengo que filtrar por los que tengan una renta menor que x (por ejemplo 10.000) y solo esos guardarlos en un archivo binario.
De momento lo que tengo hecho es lo que veis abajo, lo unico que he conseguido es que si pongo un "cout" pinto todas las lineas del txt, pero no consigo filtrar por el segundo valor y meter todo lo que cuadre en un archivo binario...
En el código que tengo quería probar a sacar el único nombre que tenia con el valor 6.000 pero no lo hace...
me podeis ayudar?
gracias!!
archivo .h:
Código (cpp) [Seleccionar]
// main.h
#pragma once
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
#define MAX 50
typedef struct {
char nombre[MAX];
int renta;
float nota;
}lista;
int getLength(lista[]);
archivo cpp
Código (cpp) [Seleccionar]
#include "Header.h"
void main()
{
lista persona;
fstream archivo, archivodat;
archivo.open("solicitudes.txt", ios::in);
archivodat.open("aceptados.dat", ios::out | ios::binary);
if (!archivo) {
cout << "Error al leer archivo";
}
else {
if (!archivodat)
cout << "Error creando el archivo binario";
else {
archivo.getline(persona.nombre, MAX, '#');
archivo >> persona.renta, ' ';
if (persona.renta == '6000')
{
archivo >> persona.nota;
while (!archivo.eof()) {
archivo.getline(persona.nombre, MAX, '#');
archivo >> persona.renta, ' ';
archivo >> persona.nota;
archivodat.write(reinterpret_cast<const char *>(&persona), sizeof(lista));
}
archivodat.close();
}
}
archivo.close();
}
system("pause");
}