Pero apenas voy comenzando a tocar el tema de archivos y no se como guardar los datos que introduje en la ejecución del programa en un archivo de .txt
¿Alguien me puede ayudar?
Este es mi código
Código
#include <stdio.h> #include <stdlib.h> #include <string.h> /*Definimos dimensiones para el registro de alumnos*/ #define M 11 /*Definimos los renglones para el registro de alumnos*/ #define N 6 /*Definimos las columnas para el registro de materias*/ typedef struct{ /*Define un nuevo tipo de dato llamado Registro de tipo estructura y sus punteros*/ char* nombre[M];/*Nombre es un arreglo de 10 elemtos y estos son punteros a cadenas, gurda direccion*/ char* clases[N]; float notas[M][N]; }Registro; void RegistrarAlumnos (Registro *a); void RegistrarClases (Registro *a); void RegistrarNotas(Registro *a); int validarNumero (char buffer[]); int main (){ Registro datos;/*Variable de tipo registro*/ int i,j;/*Variable local*/ RegistrarAlumnos (&datos);/*Se le pasa la direccion de datos*/ RegistrarClases (&datos);/*Se le pasa la direccion de datos*/ RegistrarNotas(&datos); for (i=1;i<M;i++){ for (j=1;j<N;j++){ } } } void RegistrarAlumnos (Registro *a){/*Arreglo para registro de alumnos*/ char buffer[50],*auxiliar;/*Buffer guarda momentaneamente el nombre del alumno y el puntero hace referencia a la direccion del buffer*/ int i=1;/*Nos servira para un ciclo*/ while (i<M){ gets lee cadena de caracter y la guarda en buffer*/ auxiliar=malloc(sizeof(buffer));/*A auxiliar se le asigna el tamaño de bloque de memoria de buffer*/ if (auxiliar==NULL){/*Se utiliza en caso de que el ordenador no cuente con memoria para auxiliar*/ } a->nombre[i]=auxiliar;/*A a se le asignara la memoria de buffer*/ i++;/*Contador para alumno*/ } } void RegistrarClases (Registro *a){/*Arreglo para registro de materias*/ char buffer[50],*auxiliar;/*Buffer guarda momentaneamente el nombre de la materia y el puntero hace referencia a la direccion del buffer*/ int i=1;/*Nos servira para un ciclo*/ while (i<N){ gets lee cadena de caracter y la guarda en buffer*/ auxiliar=malloc(sizeof(buffer));/*A auxiliar se le asigna el tamaño de bloque de memoria de buffer*/ if (auxiliar==NULL){/*Se utiliza en caso de que el ordenador no cuente con memoria para auxiliar*/ } a->clases[i]=auxiliar;/*A a se le asignara la memoria de buffer*/ i++;/*Contador para las clases*/ } } void RegistrarNotas(Registro *a){ int i,j; char buffer[10]; for (i=1;i<M;i++){/*Se rellena el campo notas*/ for(j=1;j<N;j++){/*Ciclo para corroborar que las notas sean numeros*/ do{ }while(!validarNumero(buffer)); } } } int validarNumero(char buffer[]){ int i=0,verdadero=1; while ((buffer[i]!='\0')&&verdadero) { if((buffer[i]=='1')||(buffer[i]=='2')||(buffer[i]=='3')||(buffer[i]=='4')|| (buffer[i]=='5')||(buffer[i]=='6')||(buffer[i]=='7')||(buffer[i]=='8')|| (buffer[i]=='9')||(buffer[i]=='0')||(buffer[i]=='.')) verdadero=1; else verdadero=0; i++; } return (verdadero); }
[MOD] Usar etiquetas GeSHi para publicar código. Gracias.