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.
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.
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#.
Bueno, te dejo aquí un ejemplo:
#define SIZE 100
int main(){
char frase[SIZE];
FILE *fichero = fopen("clientes.txt", "a"); // el segundo parametro = a -> agrega texto al final / = w -> borra lo que hay y agrega el nuevo texto
printf("Introduce una frase: ");
fgets(frase, SIZE, stdin); // las cadenas se guardan con fgets()
fprintf(fichero, "%s", frase); // agrega una linea al final del fichero con la cadena guardada en frase
fclose(fichero);
}
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í:
// Cabecera necesaria para utilizar la funcion strrchr()
#include <string.h>
//...
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
--puntero; // nos movemos una posicion a la izquierda para apuntar al salto de linea '\n' que esta justo antes del '\0'
*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:
int main(){
int edad;
FILE *fichero = fopen("edades.txt", "a");
printf("Introduce tu edad: ");
scanf("%d", &edad);
fprintf(fichero, "%d\n", edad); // Se agrega el salto de linea ahi
fclose(fichero);
}
muchas gracias por la ayuda.