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 );
}
}