online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <iostream> #include <fstream> // file stream #include <iomanip> #include <string> #include <cstdlib> using namespace std; enum RequestType { ZERO_BALANCE = 1, CREDIT_BALANCE, DEBIT_BALANCE, END }; int getRequest(); // Obtener la consulta del usuario bool shouldDisplay( int, double ); // determina si mostrar o no un registro void outputLine( int, const string, double ); // muestra un regostro int main(){ // El constructor ifstream abre el archivo ifstream inClientFile( "clientes1.txt", ios::in ); // Sale del programa si ifstream no puede abrir el archivo if( !inClientFile ){ cerr << "No se pudo abrir el archivo" << endl; exit( 1 ); // sale con codigo de error } // end if int request; int cuenta; string nombre; double saldo; // Obtener el requerimiento del usuario // (p.ej., Saldo Cero, Saldo con Credito o saldo con Debito) request = getRequest(); // procesar el requerimiento del usuario while( request != END ) { switch( request ){ case ZERO_BALANCE: cout << "\nCuentas con Saldo Cero:\n"; break; case CREDIT_BALANCE: cout << "\nCuentas de saldos con crédito:\n"; break; case DEBIT_BALANCE: cout << "\nCuentas con saldos de Debito:\n"; break; } // end switch // leer cuenta, nombre y saldo del archivo inClientFile >> cuenta >> nombre >> saldo; // Muestra el contenido hasta encontrar eof) while( !inClientFile.eof() ) { // Mostrar el registro if ( shouldDisplay( request, saldo ) ) outputLine( cuenta, nombre, saldo ); // leer la cuenta, nombre y saldo del archivo inClientFile >> cuenta >> nombre >> saldo; } // fin while interno inClientFile.clear(); // reset del eof para la siguiente entrada inClientFile.seekg( 0 ); // reposicionarse al inicio del archivo request = getRequest(); // obtener el requerimiento adicional del usuario } // fin while externo cout << "Fin de la corrida." << endl; } // end main // Muestra un registro del archivo de entrada void outputLine( int cuenta, const string nombre, double saldo ){ cout<<left<<setw(10) <<cuenta<<setw(13) <<nombre<<setw(7)<<setprecision(2) <<right <<saldo<<endl; } // fin de outputLine() // Obtener requerimiento del usuario int getRequest(){ int request; // requerimiento del usuario // mostrar opciones de requerimiento cout<<"\nIngrese Requerimiento" << endl <<" 1 - Listado de cuentas con saldo cero" << endl <<" 2 - Listado de cuentas con saldo de crédito" << endl <<" 3 - Listado de cuentas con saldo de débito" << endl <<" 4 - Finalizar programa" << fixed << showpoint; do{ // ingresar el requerimiento del usuario cout<< "\n? "; cin>> request; }while( request < ZERO_BALANCE && request > END ); return request; } // fin de la funcion getRequest // Determinar si se debe mostrar o no el registro dado bool shouldDisplay( int type, double saldo ){ // determinar si mostrar o no saldos en cero if ( type == ZERO_BALANCE && saldo == 0 ) return true; // determinar si mostrar o no saldos con crédito if ( type == CREDIT_BALANCE && saldo > 0 ) return true; // determinar si mostrar o no saldos con débito if ( type == DEBIT_BALANCE && saldo < 0 ) return true; return false; } // fin de la funcion shouldDisplay
100 jose 100.12 200 juan -399.3 300 carlos 299.99 400 Pedro 0.00
100 jose 100.12 200 juan -399.3 300 carlos 299.99 400 Pedro 0.00

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue