| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
crissepul
Registrado: 10 Abr 2007 Mensajes: 14 Ubicación: la granja
| Publicado: 06/09/2007 3:10 pm | | | Título: ingresar palabra a txt hacia abajo |
| hola tengo el siguiente problema puedo ingresar palabras a un txt pero las hace hacia al lado, yo quiero q me ingrese una abajo de otra ojala me puedan ayudar
#include <stdio.h> #include <string.h> #include <stdlib.h>
#define largo_n 25 #define largo_total 30
typedef struct { char caracteres[largo_n]; struct palabra *sig; } palabra; palabra *head_pal;
void guardar_palabra(char pala[largo_n]); void leer_palabra(char c[largo_total]); void libera_palabra(); void ingresar_palabra(); void Menu (); int texto(char w[largo_total]); char* texto_e(char w[largo_total]);
main() { int opcion; printf("\nMENU PRINCIPAL"); do{ printf("\n\n .1 Agregar palabra"); printf("\n .2 Eliminar palabra"); printf("\n .3 Salir"); printf("\n\nIngrese su opcion: "); scanf("%d", &opcion); switch(opcion) { case 1: libera_palabra(); ingresar_palabra(); break; }
if (opcion == 3) printf("\nUsted ha salido del sistema\n\n"); if (opcion < 1 || opcion > 3) { printf ("\nOpcion incorrecta... vuelva a intentarlo"); } } while(opcion != 3); }
void leer_palabra(char c[largo_total]) { char caracteres[largo_n]; char c_aux[50]; strcpy(c_aux,c);
int n; int i;
n = texto(c); for(i=0;i<n;i++){ caracteres[i]=c[i];} for(i=n;i<2*n;i++){ caracteres[i]=NULL;} strcpy(c,texto_e(c)); guardar_palabra(caracteres); }
int texto(char w[largo_total]) { int i; char w_aux[largo_n]; i=0; while(w[i]!=NULL) { w_aux[i] = w[i]; i++; } return i; } char* texto_e(char w[largo_total]) { int i; int j; int z; i=0; char w_aux[largo_total]; while(w[i]!=',') { i++; } i++; z=i; for(j=0;j<largo_total-i;j++) { w_aux[j] = w[i]; i++; } return w_aux; }
void guardar_palabra (char pala[largo_n]) { palabra *nueva_pal; nueva_pal = (palabra *)malloc(sizeof(palabra));
if(head_pal==NULL) { nueva_pal->sig = NULL; strcpy(nueva_pal->caracteres,pala); head_pal = nueva_pal; } else { palabra *aux; aux = head_pal;
while(aux->sig!=NULL) { aux=aux->sig; } strcpy(nueva_pal->caracteres,pala); nueva_pal->sig = NULL; aux->sig = nueva_pal; } }
void ingresar_palabra() { char caracteres[largo_n];
FILE *_f; char cadena[largo_total]; _f = fopen("dictionary.txt","rt"); if(_f==NULL){printf("error en el archivo");} while(fgets(cadena,largo_total,_f)!=NULL) { leer_palabra(cadena); } fclose(_f); printf("Escriba la palabra que desea ingresar:" ); gets(caracteres);gets(caracteres); guardar_palabra(caracteres);
FILE *f_;
f_ = fopen("dictionary.txt","wt"); if(f_==NULL) printf("error en el archivo");
palabra *aux; aux = head_pal;
while(aux!=NULL) { fputs((aux->caracteres),f_);
aux = aux->sig; } fclose(f_); }
void libera_palabra() { palabra *aux_head_pal; aux_head_pal = head_pal; if(head_pal!=NULL) { while(head_pal->sig!=NULL) { head_pal = head_pal->sig; free(aux_head_pal); aux_head_pal = head_pal; } head_pal=NULL; free(head_pal); } } |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 3657 Ubicación: Mexico
| Publicado: 07/09/2007 9:30 pm | | | Título: Re: ingresar palabra a txt hacia abajo |
| | crissepul escribió: | | tengo el siguiente problema puedo ingresar palabras a un txt pero las hace hacia al lado, yo quiero q me ingrese una abajo de otra |
Honestamente no entiendo a que te refieres con "hacia al lado", ¿Puedes por favor explicarte con mas detalle?
Tambien tienes que corregir los errores que ya mencione en (el otro) tema ingresar palabra a .txt.
Un saludo _________________ The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |