Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ryhuso en 26 Noviembre 2019, 08:22 am



Título: ayuda rellenar ficheros C
Publicado por: ryhuso en 26 Noviembre 2019, 08:22 am
hola soy nuevo en C y me mandaron un ejercicio de como crear una función que rellene un fichero de cliente ,no explico ni matrices ni nada estoy un poco perdido.
  Tiene que ser con fopen ..... y poner la funcion separada en otro fichero.


Título: Re: ayuda rellenar ficheros C
Publicado por: K-YreX en 26 Noviembre 2019, 18:17 pm
Todo depende de cómo te estén dando la información. Tienes que ser más específico...
Revisa la librería <stdio.h> y las funciones que tiene. Avanza algo, lo que puedas, y coloca tus avances entre etiquetas de Código GeSHi para poder ayudarte mejor.


Título: Re: ayuda rellenar ficheros C
Publicado por: ryhuso en 27 Noviembre 2019, 09:06 am
la función permite el almacenamiento de los datos de los
clientes de la empresa en un fichero que se rellenará desde teclado. El formato de los datos a guardar es:
    Cliente            Gerente                  Número          Operador
Hnos. Lobo   Juan Pedro Molano        696345012       Movistar

La incorporación de los datos de clientes al fichero puede producirse en cualquier
momento de la ejecución de la aplicación, aunque la primera vez que se ponga en marcha la
aplicación haya que introducir algunos, como buena empresa que se precie que ya tiene sus
primeros clientes


ese es el enunciado y lo que me causa problemas es el manejo de ficheros ,ya busque algo pero no lo entiendo muy bien solo necesito algunos ejemplos en "C" si se puede para ubicarme de como uso el fopen y que propiedades tiene o puedo usar.
puesto que lo que encontre es en C++ o C#.


Título: Re: ayuda rellenar ficheros C
Publicado por: K-YreX en 27 Noviembre 2019, 14:14 pm
Bueno, te dejo aquí un ejemplo:
Código
  1. #define SIZE 100
  2. int main(){
  3.    char frase[SIZE];
  4.    FILE *fichero = fopen("clientes.txt", "a"); // el segundo parametro = a -> agrega texto al final / = w -> borra lo que hay y agrega el nuevo texto
  5.  
  6.    printf("Introduce una frase: ");
  7.    fgets(frase, SIZE, stdin); // las cadenas se guardan con fgets()
  8.  
  9.    fprintf(fichero, "%s", frase); // agrega una linea al final del fichero con la cadena guardada en frase
  10.  
  11.    fclose(fichero);
  12. }
Además la función fgets() almacena también el ENTER de la entrada como un salto de línea al final de la cadena, por lo que cada frase se guardará en una línea diferente.
Cuando quieras evitar esto, puedes eliminar el salto de línea de la cadena así:
Código
  1. // Cabecera necesaria para utilizar la funcion strrchr()
  2. #include <string.h>
  3. //...
  4. char *puntero = strrchr(frase, '\0'); // puntero que apunta al '\0' de la frase. El '\0' es siempre el ultimo caracter de una cadena en C
  5. --puntero; // nos movemos una posicion a la izquierda para apuntar al salto de linea '\n' que esta justo antes del '\0'
  6. *puntero = '\0'; // modificamos el '\n' por '\0' para indicar que la cadena termina ahi

Si por el contrario quieres guardar un dato en cada línea de un fichero y el valor no tiene el salto de línea implícito:
Código
  1. int main(){
  2.    int edad;
  3.    FILE *fichero = fopen("edades.txt", "a");
  4.  
  5.    printf("Introduce tu edad: ");
  6.    scanf("%d", &edad);
  7.  
  8.    fprintf(fichero, "%d\n", edad); // Se agrega el salto de linea ahi
  9.  
  10.    fclose(fichero);
  11. }


Título: Re: ayuda rellenar ficheros C
Publicado por: ryhuso en 28 Noviembre 2019, 10:08 am
muchas gracias por la ayuda.