Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/08/2010, 19:42
davidtadeo
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 13 años, 9 meses
Puntos: 1
Por que en este otro programa mas no sale el resultado tan esperado???

hola a todos, en este programa es un archivo de acceso secuencial, necesito crear dos archivos secuenciales y despues encontrar la conincidencia por el numero de cuenta de cada uno y juntarlos, osea, en la opcion 1 creo uno y le pongo la cuenta 1 y el saldo, y despues en la opcion 2 creo otro para saber a cuales cuentas voy a modificarles el saldo, le pongo cuenta 1 y le pongo otro saldo ( que es la cuenta que se modificara ), despues en la opcion 5 le pongo juntar para que de mi segundo archivo secuencial que es donde tengo la cuenta 1 coincida con la cuenta primera y se sume o se reste y despues le de en imprimir archivo 1 y imprima el resultado ya restado o sumado. gracias


#include <stdio.h>


int instrucciones ( void );
void crear ( void );
void crear2 ( void );
void leer ( void );
void leer2 ( void );
void juntar ( void );
void verfinal ( void );
void crearfinal ( void );

int main ()

{

int seleccion;

seleccion = instrucciones();

printf ("\n");

while ( seleccion != 0 ) {

switch ( seleccion ) {
case 1:
crear();
break;

case 2:
crear2();
break;

case 3:
leer();
break;

case 4:
leer2();
break;

case 5:
juntar();
break;

}

printf ("\n\n");
seleccion = instrucciones();

}
return 0;

}

int instrucciones ( void )

{

int seleccion;

printf ("1-crear 1 archivo secuencial\n2-crear 2 archivo secuencial\n"
"3-leer 1 archivo secuencial\n4-leer 2 archivo secuencial\n5-juntar\n0-fin\n");
scanf ("%d", &seleccion );

return seleccion;

}

void crear ( void )

{

int cuenta;
int saldo;

FILE *ptr;

if (( ptr = fopen ( "credito.dat", "w" ) ) == NULL ) {
printf ("NO");
}
else {

printf ("Escribe la cuenta, 0 para terminar: ");
scanf ("%d", &cuenta );

while ( cuenta != 0 ) {

fprintf ( ptr, "%d\n", cuenta );

printf ("Escribe el saldo: ");
scanf ("%d", &saldo );
fprintf ( ptr, "%d\n", saldo );

printf ("\n");
printf ("Escribe la cuenta, 0 para terminar: ");
scanf ("%d", &cuenta );

}


fclose ( ptr );

}


}

void leer ( void )

{

int cuenta;
int saldo;

FILE *ptr;

if ( ( ptr = fopen ( "credito.dat", "r" ) ) == NULL ) {
printf ("NO");
}
else {

fscanf ( ptr, "%d%d", &cuenta, &saldo );

while ( !feof ( ptr ) ) {
printf ("%d\n%d\n\n", cuenta, saldo );
fscanf ( ptr, "%d%d", &cuenta, &saldo );
}


fclose ( ptr );

}

}

void crear2 ( void )

{

int cuenta;
int saldo;

FILE *ptr;

if (( ptr = fopen ( "credito2.dat", "w" ) ) == NULL ) {
printf ("NO");
}
else {
printf ("Escribe la cuenta, 0 para terminar: ");
scanf ("%d", &cuenta );

while ( cuenta != 0 ) {

fprintf ( ptr, "%d\n", cuenta );

printf ("Escribe el saldo: ");
scanf ("%d", &saldo );
fprintf ( ptr, "%d\n", saldo );

printf ("Escribe la cuenta, 0 para terminar: ");
scanf ("%d", &cuenta );
}


fclose ( ptr );

}

}

void leer2 ( void )

{

int cuenta;
int saldo;

FILE *ptr;

if ( ( ptr = fopen ( "credito2.dat", "r" ) ) == NULL ) {
printf ("NO");
}
else {

fscanf ( ptr, "%d%d", &cuenta, &saldo );

while ( !feof ( ptr ) ) {
printf ("%d\n%d\n\n", cuenta, saldo );
fscanf ( ptr, "%d%d", &cuenta, &saldo );
}


fclose ( ptr );

}

}

void juntar ( void )

{

void funcion ( FILE *ptr );

FILE *ptr;
int cuenta;
int saldo;

if ( ( ptr = fopen ( "credito.dat", "r+" ) ) == NULL ) {
printf ("NO");
}
else {
funcion ( ptr );
fclose ( ptr );
}

}

void funcion ( FILE *ptr )

{

FILE *ptrY;

int cuenta, cuenta2;
int saldo, saldo2;

saldo2 = 100;


if ( ( ptrY = fopen ( "credito2.dat", "r" ) ) == NULL ) {
printf ("NO");
}
else {


fprintf ( ptr, "%d %d\n", cuenta, ( saldo + saldo2 ) );


fclose ( ptrY );

}

}

Última edición por davidtadeo; 03/08/2010 a las 19:49