03/11/2011, 19:40
|
| | 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 |