Error al usar ficheros
Publicado por Miguel (2 intervenciones) el 26/09/2023 17:48:28
[code]#include <iostream>
#include <fstream>
using namespace std;
int main (){
int n, tel, edad, altura;
char sexo;
double peso;
fstream F("dietista.txt");
while (F >> tel >> edad >> peso >> altura >> sexo){
if (edad < 18 || edad > 70){
cout << tel << " Tu edad no es buena." << endl;
}
else if (18 < edad && edad < 70) {
if (sexo == 'D'){
altura = altura - 10;
if (peso <= altura - 90 && peso >= altura - 110){
cout << tel << " El peso es bueno" << endl;
}
else {
cout << tel << " El peso es malo" << endl;
}
}
if (sexo == 'H'){
if ((peso <= (altura - 90)) && (peso >= (altura - 110))){
cout << tel << " El peso es bueno" << endl;}
else {
cout << tel << " El peso es malo" << endl;}
}
}
}
}
Buenas compañeros, tengo que hacer un programa en el que introduces el siguiente fichero (dietista.txt), donde los datos son el teléfono, la edad, el peso, la altura y el sexo.
345667 20 55.8 166 D
685667 20 71.0 180 H
347394 16 63.3 171 H
289041 75 81.2 181 H
899302 22 78.1 169 D
Y el programa si la persona tiene -18 o +65 años muestra un mensaje de que la edad no es correcta.
Si es una mujer el programa le resta un metro y 10 centímetros a la altura y si está en un margen de 5 kg aparece un mensaje de que el peso es correcto, de no estar en el margen aparece un mensaje diciendo que el peso es incorrecto.
De ser un hombre es igual pero restando solo 1 metro.
El error que tengo es que me aparece la siguiente respuesta:
345667 El peso es bueno
685667 El peso es bueno
347394 Tu edad no es buena.
289041 Tu edad no es buena.
Y como aprecias falta un número y no entiendo por que no aparece.
Muchísimas gracias a todos.
#include <fstream>
using namespace std;
int main (){
int n, tel, edad, altura;
char sexo;
double peso;
fstream F("dietista.txt");
while (F >> tel >> edad >> peso >> altura >> sexo){
if (edad < 18 || edad > 70){
cout << tel << " Tu edad no es buena." << endl;
}
else if (18 < edad && edad < 70) {
if (sexo == 'D'){
altura = altura - 10;
if (peso <= altura - 90 && peso >= altura - 110){
cout << tel << " El peso es bueno" << endl;
}
else {
cout << tel << " El peso es malo" << endl;
}
}
if (sexo == 'H'){
if ((peso <= (altura - 90)) && (peso >= (altura - 110))){
cout << tel << " El peso es bueno" << endl;}
else {
cout << tel << " El peso es malo" << endl;}
}
}
}
}
Buenas compañeros, tengo que hacer un programa en el que introduces el siguiente fichero (dietista.txt), donde los datos son el teléfono, la edad, el peso, la altura y el sexo.
345667 20 55.8 166 D
685667 20 71.0 180 H
347394 16 63.3 171 H
289041 75 81.2 181 H
899302 22 78.1 169 D
Y el programa si la persona tiene -18 o +65 años muestra un mensaje de que la edad no es correcta.
Si es una mujer el programa le resta un metro y 10 centímetros a la altura y si está en un margen de 5 kg aparece un mensaje de que el peso es correcto, de no estar en el margen aparece un mensaje diciendo que el peso es incorrecto.
De ser un hombre es igual pero restando solo 1 metro.
El error que tengo es que me aparece la siguiente respuesta:
345667 El peso es bueno
685667 El peso es bueno
347394 Tu edad no es buena.
289041 Tu edad no es buena.
Y como aprecias falta un número y no entiendo por que no aparece.
Muchísimas gracias a todos.
Valora esta pregunta


0