Ver Mensaje Individual
  #12 (permalink)  
Antiguo 03/11/2011, 19:40
martin_9_91
 
Fecha de Ingreso: mayo-2011
Ubicación: Bs.As Argentina
Mensajes: 193
Antigüedad: 13 años, 7 meses
Puntos: 3
Respuesta: Modificar Archivo en C

tampoco me funciono, si pongo el printf hace lo mismo que te dije y si pongo el puts hace lo mismo de antes se posiciono en otro lugar.
te paso todo el código de como yo lo tenia al principio.
Cita:
#include <stdio.h>
#include <conio.h>
#include <string.h>

void carga(FILE *parchivo);
void mostrar(FILE *parchivo);

//Código ASCII
#define S 83
#define s 115

int main(){

/*Tipo archivo, creo un puntero*/
FILE *parchivo;
/*Abro el archivo*/
parchivo=fopen("archivo.txt", "a+t"); // si no " a+t" (si no existe lo crea, si no agrega datos), "wt" para borrar

/*Variables*/
int i, buscar=0, op, altas, otroIngreso[2];

/*Creo la estructura*/
struct listaPrecios{
int cod;
char prod[50];
float precio;
};
/*Ingreso la opcion que deseo*/
printf("Altas: ingrese 1\n");
printf("Modificaciones ingrese 2\n");
printf("Bajas ingrese 3\n");
printf("Mostrar Lista ingrese 4\n");
printf("Salir ingrese 5\n");
scanf("%i", &op);

switch(op){

/*Altas*/
case 1:{
if(op == 1){

/*Limpia pantalla*/
system ("cls");

/*Declaro un vector de tipo estructura*/
struct listaPrecios vec[1];

/*Altas*/
carga(parchivo);
}
break;
}

//Modificaciones
case 2:{
/*Limpia pantalla*/
system ("cls");

/*Declaro un vector de tipo estructura*/
struct listaPrecios vec[1];

//Muestro el contenido del fichero
mostrar(parchivo);

printf("****************************************** *****\n");

//Buscar
printf("Ingrese el codigo del archivo que desea buscar\n");
scanf("%i", &buscar);

//Busca en el archvio y se posiciona al principio del mismo
fseek(parchivo, (long)(buscar) * sizeof(vec), SEEK_SET);
//Lee en el archivo
fread(&vec,sizeof(vec),1,parchivo);
//Muestra en pantalla
puts(vec);

break;
}

//Bajas
case 3:{
break;
}

//Muestro el contenido del fichero
case 4:{
/*Limpia pantalla*/
system ("cls");


/*Declaro un vector de tipo estructura*/
struct listaPrecios vec[1];

//Mostrar fichero
mostrar(parchivo);
break;
}

//Salgo del programa
case 5: {
close();
break;
}



/*Cierre del switch*/
}

/*Cierro el archivo*/
fclose(parchivo);

/*Pausa*/
getch();

}
//-----------------------------------------------------------------

//Funcion de ALTA
void carga(FILE *parchivo){

//Variables
int i;

/*Creo la estructura*/
struct listaPrecios{
int cod;
char prod[50];
float precio;
};

/*Declaro un vector de tipo estructura*/
struct listaPrecios vec[1];

char sig;
//Altas
do{
for(i=0;i<1;i++){
/*Limpia pantalla*/
system ("cls");
/*Ingreso el codigo*/
printf("Ingrese el codigo\n");
scanf("%i", &vec[i].cod);
/*Ingreso el producto*/
printf("Ingrese el producto\n");
fflush(stdin);
gets(vec[i].prod);
/*Ingreso el precio*/
printf("Ingrese el precio\n");
scanf("%f", &vec[i].precio);
/*Grabo los datos en el txt*/
fprintf(parchivo, "---------------------------------------------\n");
fprintf(parchivo, " Codigo: %i \n Producto: %s \n Precio: %f \n", vec[i].cod, vec[i].prod, vec[i].precio);
}
printf(" ¿Desea Agregar otro producto? Ingrese la letra: S, de lo contrario ingrese: N\n");
scanf("%s", &sig);
}while(sig == 'S' || sig == 's');

}


//Funcion de Mostrar contenido del fichero
void mostrar(FILE *parchivo){

/*Creo la estructura*/
struct listaPrecios{
int cod;
char prod[50];
float precio;
};

/*Declaro un vector de tipo estructura*/
struct listaPrecios vec[1];

printf("El contenido del archivo es: \n");

//Recorro el archivo
do{
fgets(vec, 100, parchivo);
puts(vec);
}while(fgetc(parchivo) != EOF);

}

//------------------------------------------------------
Muchisimas gracias