HOMONIMO DE FFLUSH
Publicado por Nork_MG (4 intervenciones) el 09/09/2007 18:14:04
Esop, lo ke pasa es ke aprendi a programar en ANSI C y ahora toy empezando con C++, lo que me complica es correlacionar los comandos, por ke si bien es cierto son faciles para el printf==>cout
o para el scanf===>cin, no he encontrado el homonimo para limpiar buffer, y si lo pongo en el programa no me afecta en nada, es como si no pusiera, el caso es ke kiero insertar una cadena de caracteres,
char a[10];
cou<<"blablabla!;
gets(a);
y aki pasa cagando pa abajo, lo mismo pasaba con el scanf("%s",a);
pero luego ponia un fflush(stdin); y todo se solucionaba..............
bueno si alguien me ayudara se lo agradeceria..........en too caso pongo todo el codigo ke tengo por si alguien no caxo....grax.....
/* Programa Escrito, Compilado & Documentado por Fabian Arenas L.
RUN: 16.629.717 - 6. Estudiante de Ingenieria en Informatica. UTEM */
#include<iostream>
using namespace std;
class Paciente{
private:
int code;
int rut;
int deuda;
char prevision;
char Apellido_P[10];
char Apellido_M[10];
char Nombres[15];
char consulta[100];
public:
void nuevoPaciente(int a, int b, char* ap1, char* ap2, char* nom){
code=a;
rut=b;
}
void reservarHora(char* medico, int dia, int mes, int ano);
void suspenderHora();
void pagar();
void abonar(double v);
void agregarCuenta(double v);
double calcularPago(double valorConsulta);
int mostrar(){
return rut;
}
};
void Menu(){
system("cls"); /*cambiarlo ya que no funciona en linux*/
cout<<"\t\t\tGESTION DE PACIENTES"<<endl;
cout<<"\t\t\t======= == ========="<<endl<<endl<<endl;
cout<<"Por Favor Seleccione una Opcion:"<<endl<<endl;
cout<<"1.- Crear Ficha para un Nuevo Paciente"<<endl;
cout<<"2.- Actulizar la Ficha del Paciente"<<endl;
cout<<"3.- Mostrar la Ficha del Paciente"<<endl;
cout<<"4.- Calcular Deuda del Paciente"<<endl;
cout<<"5.- Reservar una Hora"<<endl;
cout<<"6.- Cancelar la Reserva de una Hora"<<endl;
cout<<"7.- Cancelar la Totalidad de la Deuda del Paciente"<<endl;
cout<<"8.- Cancelar Parte de la Deuda de un Paciente"<<endl;
cout<<"9.- Salir del Programa"<<endl;
cout<<"\t\t\t\t Opcion: ";
}
int main(){
int a,b,opc;
char ap_p[10],ap_m[10],nom[15],cons[100];
Paciente pac;
do{
Menu();
cin>>opc;
switch(opc){
case 1:{
system("cls"); /*cambiarlo ya que no funciona en linux*/
cout<<"Ingrese el Numero de Paciente: ";
cin>>a;
cout<<"Ingrese el RUT del Paciente: ";
cin>>b;
cout<<"Ingrese el Primer Apellido del Paciente: ";
gets(ap_p);
/* aki fflush*/
cout<<"Ingrese el Segundo Apellido del Paciemte: ";
gets(ap_m);
/* aki fflush*/
cout<<"Ingrese los Nombres del Paciente: ";
gets(nom);
/* aki fflush*/
pac.nuevoPaciente(a,b,ap_p,ap_m,nom);
break;
}
case 3:{
system("cls"); /*cambiarlo ya que no funciona en linux*/
cout<<pac.mostrar()<<endl;
cin.get();
cin.get();
}
}
}while(opc!=9);
return (0);
}
o para el scanf===>cin, no he encontrado el homonimo para limpiar buffer, y si lo pongo en el programa no me afecta en nada, es como si no pusiera, el caso es ke kiero insertar una cadena de caracteres,
char a[10];
cou<<"blablabla!;
gets(a);
y aki pasa cagando pa abajo, lo mismo pasaba con el scanf("%s",a);
pero luego ponia un fflush(stdin); y todo se solucionaba..............
bueno si alguien me ayudara se lo agradeceria..........en too caso pongo todo el codigo ke tengo por si alguien no caxo....grax.....
/* Programa Escrito, Compilado & Documentado por Fabian Arenas L.
RUN: 16.629.717 - 6. Estudiante de Ingenieria en Informatica. UTEM */
#include<iostream>
using namespace std;
class Paciente{
private:
int code;
int rut;
int deuda;
char prevision;
char Apellido_P[10];
char Apellido_M[10];
char Nombres[15];
char consulta[100];
public:
void nuevoPaciente(int a, int b, char* ap1, char* ap2, char* nom){
code=a;
rut=b;
}
void reservarHora(char* medico, int dia, int mes, int ano);
void suspenderHora();
void pagar();
void abonar(double v);
void agregarCuenta(double v);
double calcularPago(double valorConsulta);
int mostrar(){
return rut;
}
};
void Menu(){
system("cls"); /*cambiarlo ya que no funciona en linux*/
cout<<"\t\t\tGESTION DE PACIENTES"<<endl;
cout<<"\t\t\t======= == ========="<<endl<<endl<<endl;
cout<<"Por Favor Seleccione una Opcion:"<<endl<<endl;
cout<<"1.- Crear Ficha para un Nuevo Paciente"<<endl;
cout<<"2.- Actulizar la Ficha del Paciente"<<endl;
cout<<"3.- Mostrar la Ficha del Paciente"<<endl;
cout<<"4.- Calcular Deuda del Paciente"<<endl;
cout<<"5.- Reservar una Hora"<<endl;
cout<<"6.- Cancelar la Reserva de una Hora"<<endl;
cout<<"7.- Cancelar la Totalidad de la Deuda del Paciente"<<endl;
cout<<"8.- Cancelar Parte de la Deuda de un Paciente"<<endl;
cout<<"9.- Salir del Programa"<<endl;
cout<<"\t\t\t\t Opcion: ";
}
int main(){
int a,b,opc;
char ap_p[10],ap_m[10],nom[15],cons[100];
Paciente pac;
do{
Menu();
cin>>opc;
switch(opc){
case 1:{
system("cls"); /*cambiarlo ya que no funciona en linux*/
cout<<"Ingrese el Numero de Paciente: ";
cin>>a;
cout<<"Ingrese el RUT del Paciente: ";
cin>>b;
cout<<"Ingrese el Primer Apellido del Paciente: ";
gets(ap_p);
/* aki fflush*/
cout<<"Ingrese el Segundo Apellido del Paciemte: ";
gets(ap_m);
/* aki fflush*/
cout<<"Ingrese los Nombres del Paciente: ";
gets(nom);
/* aki fflush*/
pac.nuevoPaciente(a,b,ap_p,ap_m,nom);
break;
}
case 3:{
system("cls"); /*cambiarlo ya que no funciona en linux*/
cout<<pac.mostrar()<<endl;
cin.get();
cin.get();
}
}
}while(opc!=9);
return (0);
}
Valora esta pregunta
0