elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Java / Se va a seguir usando Java? en: 9 Diciembre 2015, 00:06 am
Estaba empezando a aprender a programar en Java cuando me di cuenta de que ya los applets quedaron en desuso, por lo que me surgio esa duda, aprendo java o ya fue?

Saludos.
2  Programación / Programación C/C++ / variables con & en: 13 Octubre 2015, 01:36 am
Hola no entiendo que significa declarar una variable usando el amperson

Código:
int a;
int &b=a;

3  Programación / Programación C/C++ / Re: guardar estructuras en ficheros en: 23 Abril 2014, 19:24 pm
ok, muchas gracias!
4  Programación / Programación C/C++ / Re: estructuras en ficheros en: 23 Abril 2014, 03:46 am
y asi no me deberia andar?

Código:
#include <stdio.h>

struct moto{

    int precio, km;
    char *marca;
    char *descripcion;

};


int main(){

    FILE *pf;

    pf=fopen("datos.txt", "w+b");

    struct moto moto1;

    moto1.precio=1500;
    moto1.km=0;
    moto1.marca="Yamaha";
    moto1.descripcion="La moto es muy linda y rapida";

    fwrite(&moto1, sizeof(moto1), 1, pf);
   
    fread(&moto2, sizeof(moto2), 1, pf);

    printf("%d\n", moto2.precio);
    printf("%d\n", moto2.km);
    puts(moto2.marca);
    puts(moto2.descripcion);
   

    fclose(pf);

    return 0;
}
5  Programación / Programación C/C++ / Re: guardar estructuras en ficheros en: 23 Abril 2014, 03:41 am
Eso sucede porque estas utilizando fwrite para escribir los datos en el archivo y esa funcion copia los bytes que los constituyen tal cual (como estan en memoria).

Si quieres que se almacenen de forma legible en el archivo debes utilizar las funciones fprintf, fputs, fgetc, etc. Ejemplos sobre el uso de ellas los puedes revisar cortesía del motor de búsqueda de los foros.

Un saludo

y asi no me deberia andar?

Código:
#include <stdio.h>

struct moto{

    int precio, km;
    char *marca;
    char *descripcion;

};


int main(){

    FILE *pf;

    pf=fopen("datos.dat", "w+b");

    struct moto moto1;

    struct moto moto2;

    moto1.precio=1500;
    moto1.km=0;
    moto1.marca="Yamaha";
    moto1.descripcion="La moto es muy linda y rapida";

    fwrite(&moto1, sizeof(moto1), 1, pf);

    fread(&moto2, sizeof(moto2), 1, pf);

    printf("%d\n", moto2.precio);
    printf("%d\n", moto2.km);
    puts(moto2.marca);
    puts(moto2.descripcion);


    fclose(pf);

    return 0;
}
6  Programación / Programación C/C++ / estructuras en ficheros en: 23 Abril 2014, 02:17 am
Hola quiero saber porque esto no me funciona? osea el porograma se compila y ejecuta, pero cuando abro el archivo txt, me aparecen sibolos raros:

Código:
#include <stdio.h>

struct moto{

    int precio, km;
    char *marca;
    char *descripcion;

};


int main(){

    FILE *pf;

    pf=fopen("datos.txt", "wb");

    struct moto moto1;

    moto1.precio=1500;
    moto1.km=0;
    moto1.marca="Yamaha";
    moto1.descripcion="La moto es muy linda y rapida";

    fwrite(&moto1, sizeof(moto1), 1, pf);

    fclose(pf);

    return 0;
}
7  Programación / Programación C/C++ / Re: como borro o modifico datos en un fichero? en: 23 Abril 2014, 02:16 am
no se nada de c++, pero gracias igual
8  Programación / Programación C/C++ / Re: como borro o modifico datos en un fichero? en: 22 Abril 2014, 23:56 pm
Si quieres borrar un registro tienes dos opciones:

* Reescribes completamente el fichero evitando guardar el registro borrado.

* con fseek te colocas al inicio del registro y sobreescribes su contenido de tal forma que al leerlo puedas identificarlo como un registro borrado y puedas ignorarlo ( por ejemplo dejando el nombre vacío ).

Si quieres modificar un registro tienes también dos opciones:

* Reescribes completamente el fichero con los nuevos datos.

* con fseek te colocas al inicio del registro y sobreescribes su contenido con la información actual.

Como ves la opción elegida te sirve para ambos cometidos. La primera es más sencilla de implementar pero también más lenta... la segunda es más rápida y eficiente... pero requiere algo más de código por tu parte.

pero si me pongo con fseek en donde comienza el archivo como cambio por ejemplo el producto que esta en el medio?
9  Programación / Programación C/C++ / Re: guardar estructuras en ficheros en: 22 Abril 2014, 23:54 pm
A mí si me funciona.

Por cierto, fflush está pensado para buffers de salida, no de entrada... cuidado con eso.

Echa un vistazo al hilo que trata sobre el tema: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html

como que te funciona? yo compilo, creo un archivo, abro el archivo creado y me sale todo raro, con codigos null y no se que
10  Programación / Programación C/C++ / guardar estructuras en ficheros en: 22 Abril 2014, 03:50 am
Hola, no entiendo porque en mi programa no se me guardan las estructuras cuando pongo esto:

Código:
fwrite(&p, sizeof(p), 1, pf);

siendo p una variable de una estructura, les dejo el codigo del programa a medio hacer:

Código:
#include <stdio.h>

typedef struct producto{
    int numSerie;
    char nombre[20];
    char descripcion[100];
    int precio;
}producto;

void imprimirMenu(void);
void nuevoProducto(char nombreArchivo[]);
//borrarProducto();
//modificarProducto();
//verProducto(char nombreArchivo[]);

int main(){

    char nombreArchivo[20]="productos.dat";

    int r=0;

    do{

    r=0;
    int opcion;

    system("cls");
    imprimirMenu();

    fflush(stdin);
    scanf("%d", &opcion);

    switch (opcion) {

        case 1: nuevoProducto(nombreArchivo);
                break;
        case 4: verArchivo(nombreArchivo);
                break;



    }

    printf("\n\nOtra? ");
    scanf("%d", &r);



    }while(r==1);


    printf("\n\n");

    return 0;
}


void imprimirMenu(void){

    system("cls");
    printf("----Data Productos----");
    printf("\n\n-Menu:");
    printf("\n1.Nuevo Producto");
    printf("\n2.Modificar Producto");
    printf("\n3.Borrar Producto");
    printf("\n4.Ver Producto");
    printf("\n\nOpcion: ");

}


void nuevoProducto(char nombreArchivo[]){

    FILE *pf;

    if((pf=fopen(nombreArchivo, "ab"))==NULL){
        printf("\nError al abrir el archivo");
        exit (-1);
    }

    producto p;

    system("cls");

    printf("Numero: ");
    fflush(stdin);
    scanf("%d", &p.numSerie);
    printf("\nNombre: ");
    fflush(stdin);
    gets(p.nombre);
    printf("\nDescripcion: ");
    fflush(stdin);
    gets(p.descripcion);
    printf("\nPrecio: ");
    fflush(stdin);
    scanf("%d", &p.precio);

    fwrite(&p, sizeof(p), 1, pf);

    fclose(pf);

}
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines