elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Octubre 2008, 17:12  



  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: validador hecho en c, conpila pero no funciona en: 06 Septiembre 2008, 21:38
Nuevamente, es un honor leer tus cordiales y cariñosas palabras :rolleyes:

En serio, pretendo aprender. Pude quedarme en silencio y decir que el código fuente lo hice solo. Para que no te sientas mal, te  doy las gracias porque has tenido paciencia y haber escrito sugerencias en un tono muy tierno.  ;)

Lo probé anoche y compila. Uso dev-c++, así que me extraña que no te haya funcionado.  (:manzanitas mode on: ->Compile ..aparece Done... ->Run :se abre la ventana...aparece Ingrese Rut: se ingresa números y se cierra el programa. Si ingresas por ejemplo "barney70" lo toma como error. :manzanitas mode off:)

Ahora bien, es mi deber reconocer que aun tiene fallos ( si escribes mas de dos veces letras y números, se sale la aplicación :¬¬ )...Por mi parte buscare mejorar el código. ( Y probaré el camino recursivo.)



2  Programación / Programación C/C++ / Re: validador hecho en c, conpila pero no funciona en: 06 Septiembre 2008, 03:58
Gracias por alegrarme el día con tus comentarios. :laugh:

Volviendo al tema...antes que me respondieras..he aquí la variación del código.. con ayuda de un compis  :)
#include <stdio.h>
#include <ctype.h>

/**Este metodo valida si el rut ingresado son solo numeros */
int main(){
     /**He aqui la variable rut en formato char para hacer corroboraciones*/
    char rut[]={'1','2','3','4','l','6',';'};
     int i=0,j=0;

    printf("Ingrese RUT: ");
    scanf("%s", &rut);
    /*Para validar esto se ocupa la funcion isdigit*/
   
   while(i<7) {
      if( isdigit(rut)==0){
         printf("%i, %d\n", rut, isdigit(rut));
         j=1;
         i=7;
      }
        else
         i++;
   }
   if(j==1) {  printf("RUT INVALIDO, ingrese otro: ");
               scanf("%s", &rut);
                }
   else printf("es rut\n");
   return 0;
   getche();
   
   }


Ingrese un codigo numerico y punka.... ;D ;D ;D
3  Programación / Programación C/C++ / validador hecho en c, conpila pero no funciona en: 02 Septiembre 2008, 13:53
Holas:

hace milenios, que no he venido por aqui pero aki estoy. :rolleyes:. Aqui tengo en código C, un validador...el problema es que le ingreso solo digitos y aparece el mensaje de error. Busco saber porque dice error...y me aparece un signo de exclamación por pantalla, sin averlo invocado antes!!!!! :o. Si encuentran algún error, por favor, háganlo saber

Hecho con dev-c++ 4.9.9.2
Entorno window$.

Código:
#include <string.h>
#include <stdio.h>
#include <ctype.h>

/**Este metodo valida si el rut ingresado son solo numeros */
int main(){
/**He aqui la variable rut en formato char para hacer corroboraciones*/
char rut[7];
int i=0;

printf("Ingrese RUT: ");
scanf("%s", &rut[7]);
/*Para validar esto se ocupa la funcion isdigit*/

while(rut[i]!=7) {
if( isdigit(rut[i])==0){
printf("%c, %d\n", rut[i], isdigit(rut[i]));
printf("RUT INVALIDO, ingrese otro: ");
scanf("%s", &rut[7]);
}
else
i++;

}


return 0;
getchar();
}
4  Programación / Programación C/C++ / Re: COMO HACER MAS GRANDE LA VENTANA DEL EJECUTABLE???? en: 16 Mayo 2008, 21:06
1) es un programa que manipula texto. No imágenes gráficas
2)es en c.
3) por el minuto no encuentro suficiente documentación como para aplicar SetWindowPos.
4)Gracias por el mensaje :xD
5)Si me respondiera...seria súper!!! :rolleyes:
5  Programación / Programación C/C++ / Re: COMO HACER MAS GRANDE LA VENTANA DEL EJECUTABLE???? en: 16 Mayo 2008, 03:08
disculpa pero si me explicaras mejor...me ayudarias bastante
6  Programación / Programación General / Re: NOTICIAS - ¿Están perdiendo terreno los lenguajes C y C++? en: 16 Mayo 2008, 03:07
D me suena a open solaris...que dicen??
7  Programación / Programación C/C++ / COMO HACER MAS GRANDE LA VENTANA DEL EJECUTABLE???? en: 16 Mayo 2008, 00:19
ESO el programa que necesito hacer necesita más ancho. Sia lguien sabe como "anchar la salida por pantalla"...se lo agradeceria. :P
8  Programación / Programación C/C++ / Re: un asunto que en apariencia funciona pero no hace nada en: 16 Mayo 2008, 00:14
 lo arregle!!!! ;D

pero aun me faltan cosas por resolver...por ejemplo aparece por pantalla pero NO GUARDA EN TXT LOS datos ingresados. :(
Código:
#include <stdio.h>
#include <string.h>


typedef struct _proyecto {
        char name_inmobiliaria[10];
        char name_proyecto[15];
        char comuna[15];
        char direccion[20];
        int  cant_inmuebles;
        int  cant_vendida;
        int  valor_min;
        int  valor_max;
        struct _proyecto *siguiente;
        }proyecto;
       
proyecto *proyectos;

proyecto *crea_nodo_proyecto(char name_inmobiliaria[10], char name_proyecto[15], char comuna[15], char direccion[20], int cant_inmuebles, int cant_vendida, int valor_min, int valor_max)
{
    proyecto *nuevo;
    nuevo=(proyecto *)malloc(sizeof(proyecto));
    strcpy(nuevo->name_inmobiliaria, name_inmobiliaria);
    strcpy(nuevo->name_proyecto, name_proyecto);
    strcpy(nuevo->comuna, comuna);
    nuevo->cant_inmuebles=cant_inmuebles;
    nuevo->cant_vendida=cant_vendida;
    nuevo->valor_min=valor_min;
    nuevo->valor_max=valor_max;
    nuevo->siguiente=NULL;
    return(nuevo);
}

void insertar_proyecto_ordenado(char *name_inmobiliaria, char *name_proyecto, char *comuna, char *direccion, int cant_inmuebles ,int cant_vendida,int valor_min,int valor_max) {
    proyecto *actual, *nuevo, *anterior, *tmp1, *tmp2;
    char temp [10];
    actual=anterior=proyectos;
    nuevo=crea_nodo_proyecto(name_inmobiliaria,name_proyecto,comuna,direccion,cant_inmuebles,cant_vendida,valor_min,valor_max);
    if(proyectos == NULL) { /*si no existe nodo*/
        proyectos=nuevo;
    printf("Aki1");
    }
    else{
        /*revisa si el dato del nodo a ingresar es menor que la cabeza*/
        if(strncmp(proyectos->name_inmobiliaria, nuevo->name_inmobiliaria, 10)>0) {
            nuevo->siguiente = proyectos;
            proyectos=nuevo;
            printf("\nAki2");
        }
        else{
            /*tiene un solo elemento en la lista, y como ya se comprobo si el dato del nuevo nodo era menor
             que la cabeza, significa que este es mayor o igual a ella*/
            if(proyectos->siguiente == NULL){
                proyectos->siguiente = nuevo;
                printf("\nAki3");
            }/*tiene mas de 2 elementos en la lista*/
            else{
                /*se referencian los punteros temporales para luego recorrer la lista*/
                tmp1=proyectos;
                tmp2=proyectos->siguiente;
                printf("\nAki4");
                /*se recorre la lista comprobando si no se llego al final y si el dato del nuevo nodo
                 es mayor que los datos de los nodos de la lista */
                while( strncmp(tmp2->name_inmobiliaria, nuevo->name_inmobiliaria, 10)<0 && (tmp2->siguiente != NULL) ){
                    tmp1=tmp2;
                    tmp2=tmp2->siguiente;
                }
                /*hay dos formas que pare el ciclo anterior, una es que el elemento a insertar se encuentra
                 en los elementos del centro de la lista, y la otra si se llega al ultimo nodo*/
                /*si se llego al ultimo nodo*/
                if(tmp2->siguiente == NULL){
                    /*si el dato del nuevo nodo es menor que el nodo final de la lista*/
                    if(strncmp(tmp2->name_inmobiliaria, nuevo->name_inmobiliaria, 10)>0){
                        nuevo->siguiente = tmp2;
                        tmp1->siguiente=nuevo;
                    }/*el dato del nuevo nodo es el mayor de toda la lista*/
                    else{
                        tmp2->siguiente = nuevo;
                    }
                }/*se inserta en el sector medio de la lista*/
                else{
                    tmp1->siguiente=nuevo;
                    nuevo->siguiente=tmp2;
                }
            }
        }
    }
}

void mostrar_solo_proyectos(proyecto *proyectos) {
  proyecto *aux;
  aux=proyectos;
  printf("\n    \x10 \x10\x10 LISTA DE PROYECTOS \n");
  printf("INMOBILIARIA\tPROYECTO\tCOMUNA\tDIRECCION\tTOTAL\tVENDIDOS\tDESDE\tTOPE\n");
  while (aux!=NULL) {
    printf("%s\t%s\t%s\t%s\t%d\t%d\t%d\t%d\n", aux->name_inmobiliaria, aux->name_proyecto, aux->comuna, aux->direccion, aux->cant_inmuebles, aux->cant_vendida, aux->valor_min, aux->valor_max);
    aux=aux->siguiente;
  }
}

void insertar_proyecto() {

    char name_inmobiliaria[15];
    char name_proyecto[15];
    char comuna[15];
    char direccion[20];
    int  cant_inmuebles;
    int  cant_vendida;
    int  valor_min;
    int valor_max;
   
    printf("Ingrese el nombre de la inmobiliaria:\n");
    scanf("%s", &name_inmobiliaria);
    printf("Ingrese el proyecto de la inmobiliaria:\n");
    scanf("%s", &name_proyecto);
    printf("Ingrese la comuna del proyecto:\n");
    scanf("%s", &comuna);
    printf("Ingrese la direccion del proyecto:\n");
    scanf("%s", &direccion);
    printf("Ingrese la cantidad de inmuebles del proyecto:\n");
    scanf("%d", &cant_inmuebles);
    printf("Ingrese la cantidad vendida de inmuebles del proyecto:\n");
    scanf("%d", &cant_vendida);
    printf("Ingrese el valor minimo del proyecto:\n");
    scanf("%d", &valor_min);
    printf("Ingrese el valor maximo del proyecto:\n");
    scanf("%d", &valor_max);   
    insertar_proyecto_ordenado(name_inmobiliaria,name_proyecto,comuna,direccion,cant_inmuebles,cant_vendida,valor_min,valor_max);
     }
     
 void guardar_proyecto(proyecto *proyectoss) {
    FILE *fileProyecto;
    fileProyecto = fopen("proyecto.txt", "w");
    proyecto *temp;
    temp = proyectos;
    while (temp) {
        fprintf(fileProyecto, "%s*", temp->name_inmobiliaria);
        fprintf(fileProyecto, "%s*", temp->name_proyecto);
        fprintf(fileProyecto, "%s*", temp->comuna);
        fprintf(fileProyecto, "%s*", temp->direccion);
        fprintf(fileProyecto, "%i*", temp->cant_inmuebles);
        fprintf(fileProyecto, "%i*", temp->cant_vendida);
        fprintf(fileProyecto, "%i*", temp->valor_min);
        fprintf(fileProyecto, "%i\n", temp->valor_max);

        temp = temp->siguiente;
    }
    fclose(fileProyecto);
}
     
void cargar_proyectos() {
  FILE *file;
  int count=0;
  char *tmp=0;
  char temp[100]=" ";
  char eol[1]="\n"; //end of line
  char separar[3]="/n*"; //caracter que avisa su separacion
  int i=0;
  int j=0;
//variables de origen temporal que seran de tipo char 
  char name_inmobiliaria[10];
  char name_proyecto[15];
  char comuna[15];
  char direccion[20];
  char cant_inmuebles_char[2];
  int  cant_inmuebles;
  char cant_vendida_char[2];
  int  cant_vendida;
  char valor_min_char[6]; //los valores son en UF
  int  valor_min;
  char valor_max_char[6];
  int  valor_max;
  int no_final=0;
 
   file=fopen("proyectos.txt", "r");
 
  if (file==NULL) {
    printf("\n  ********* ADVERTENCIA***********\n");
    printf("No existe el archivo de datos proyectos.txt\n");
    printf("Se creara uno nuevo...\n\n");
    file=freopen("proyectos.txt","w",stdout);//aqui se construye uno novo.
    return;
  }
  while (!feof(file)) {
    temp[i]=fgetc(file);
   
    while(temp[i]!=eol[0] && !feof(file)) {
                         
      i++;
      temp[i]=fgetc(file);
      count++;
      no_final=1;
    }
    if (no_final==0) return;
    while(count<100) {
      temp[i]=' ';
      i++;
      count++;
    }
    tmp = strtok(temp,separar);
    strcpy(name_inmobiliaria,tmp); //pedazo del nombre de inmobiliaria
    tmp = strtok(NULL,separar);
    strcpy(name_proyecto,tmp);
    tmp = strtok(NULL,separar);
    strcpy(comuna,tmp);
    tmp = strtok(NULL,separar);
    strcpy(direccion,tmp);
    tmp = strtok(NULL,separar);
    strcpy(cant_inmuebles_char,tmp);
    cant_inmuebles=atoi(cant_inmuebles_char);
    strcpy(cant_vendida_char, tmp);
    cant_vendida=atoi(cant_vendida_char);
    tmp=strtok(NULL,separar);
    strcpy(valor_min_char, tmp);
    valor_min=atoi(valor_min_char);
    tmp=strtok(NULL,separar);
    strcpy(valor_max_char, tmp);
    valor_max=atoi(valor_max_char);
    insertar_proyecto_ordenado(name_inmobiliaria,name_proyecto,comuna, direccion, cant_inmuebles,cant_vendida,valor_min,valor_max);
    i=0;
    count=0;
    no_final=0;
  }
  fclose(file);
}


int main(){

    printf("cargando proyectos...");
    cargar_proyectos(proyectos);
    insertar_proyecto(proyectos);
    guardar_proyecto(proyectos);
    mostrar_solo_proyectos(proyectos);
    getche();
    return 0;
   
    }
9  Programación / Programación C/C++ / un asunto que en apariencia funciona pero no hace nada en: 15 Mayo 2008, 03:42
 :-\

dado un fichero de extensión *.txt, debe leerlo y almacenarlo en nodos de listas enlazadas.

ej:

Paz*ElOsito*Santiago*Mercedes666*23*19*1111*33333

Código:
#include <stdio.h>
#include <string.h>


typedef struct _proyecto {
        char name_inmobiliaria[10];
        char name_proyecto[15];
        char comuna[15];
        char direccion[20];
        int  cant_inmuebles;
        int  cant_vendida;
        int  valor_min;
        int  valor_max;
        struct _proyecto *siguiente;
        }proyecto;
       
proyecto *proyectos;

proyecto *crea_nodo_proyecto(char name_inmobiliaria[10], char name_proyecto[15], char comuna[15], char direccion[20], int cant_inmuebles, int cant_vendida, int valor_min, int valor_max)
{
    proyecto *nuevo;
    nuevo=(proyecto *)malloc(sizeof(proyecto));
    strcpy(nuevo->name_inmobiliaria, name_inmobiliaria);
    strcpy(nuevo->name_proyecto, name_proyecto);
    strcpy(nuevo->comuna, comuna);
    nuevo->cant_inmuebles=cant_inmuebles;
    nuevo->cant_vendida=cant_vendida;
    nuevo->valor_min=valor_min;
    nuevo->valor_max=valor_max;
    nuevo->siguiente=NULL;
    return(nuevo);
}

void insertar_proyecto_ordenado(char *name_inmobiliaria, char *name_proyecto, char *comuna, char *direccion, int cant_inmuebles ,int cant_vendida,int valor_min,int valor_max) {
    proyecto *actual, *nuevo, *anterior, *tmp1, *tmp2;
    char temp [20];
    actual=anterior=proyectos;
    nuevo=crea_nodo_proyecto(name_inmobiliaria,name_proyecto,comuna,direccion,cant_inmuebles,cant_vendida,valor_min,valor_max);
    if(proyectos == NULL) { /*si no existe nodo*/
        proyectos=nuevo;
       
    }
    else{
        /*revisa si el dato del nodo a ingresar es menor que la cabeza*/
        if(strncmp(proyectos->name_inmobiliaria, nuevo->name_inmobiliaria, 20)>0) {
            nuevo->siguiente = proyectos;
            proyectos=nuevo;
        }
        else{
         
            if(proyectos->siguiente == NULL){
                proyectos->siguiente = nuevo;
            }
            else{
               
                tmp1=proyectos;
                tmp2=proyectos->siguiente;
               
                while( strncmp(tmp2->name_inmobiliaria, nuevo->name_inmobiliaria, 20)<0 && (tmp2->siguiente != NULL) ){
                    tmp1=tmp2;
                    tmp2=tmp2->siguiente;
                }
               
                /*si se llego al ultimo nodo*/
                if(tmp2->siguiente == NULL){
                    /*si el dato del nuevo nodo es menor que el nodo final de la lista*/
                    if(strncmp(tmp2->name_inmobiliaria, nuevo->name_inmobiliaria, 20)>0){
                        nuevo->siguiente = tmp2;
                        tmp1->siguiente=nuevo;
                    }/*el dato del nuevo nodo es el mayor de toda la lista*/
                    else{
                        tmp2->siguiente = nuevo;
                    }
                }/*se inserta en el sector medio de la lista*/
                else{
                    tmp1->siguiente=nuevo;
                    nuevo->siguiente=tmp2;
                }
            }
        }
    }
}

void mostrar_solo_proyectos(proyecto *proyectos) {
  proyecto *aux;
  aux=proyectos;
  printf("\n    /x10    ********** LISTA DE PROYECTOS *********\n");
  printf("INMOBILIARIA\tPROYECTO\tCOMUNA\tDIRECCION\t\tTOTAL INMUEBLES\tVENDIDOS\tDESDE\tTOPE\n");
  while (aux) {
    printf("%s\t%s\t%s\t%s\t\t%d\t%d\t%d\t%d\n", aux->name_inmobiliaria, aux->name_proyecto, aux->comuna, aux->direccion, aux->cant_inmuebles, aux->cant_vendida, aux->valor_min, aux->valor_max);
    aux=aux->siguiente;
  }
}
void cargar_proyectos() {
  FILE *file;
  int count=0;
  char *tmp=0;
  char temp[100]=" ";
  char eol[1]="\n"; //end of line
  char separar[3]="/n*"; //caracter que avisa su separacion
  int i=0;
  int j=0;
//variables de origen temporal que seran de tipo char 
  char name_inmobiliaria[10];
  char name_proyecto[15];
  char comuna[15];
  char direccion[20];
  char cant_inmuebles_char[2];
  int  cant_inmuebles;
  char cant_vendida_char[2];
  int  cant_vendida;
  char valor_min_char[6]; //los valores son en UF
  int  valor_min;
  char valor_max_char[6];
  int  valor_max;
  int no_final=0;
 
   file=fopen("proyectos.txt", "r");
 
  if (file==NULL) {
    printf("\n  ********* ADVERTENCIA***********\n");
    printf("No existe el archivo de datos proyectos.txt\n");
    printf("Se creara uno nuevo...\n\n");
    file=freopen("proyectos.txt","w",stdout);//aqui se construye uno novo.
    return;
  }
  while (!feof(file)) {
    temp[i]=fgetc(file);
   
    while(temp[i]!=eol[0] && !feof(file)) {
                         
      i++;
      temp[i]=fgetc(file);
      count++;
      no_final=1;
    }
    if (no_final==0) return;
    while(count<100) {
      temp[i]=' ';
      i++;
      count++;
    }
    tmp = strtok(temp,separar);
    strcpy(name_inmobiliaria,tmp); //pedazo del nombre de inmobiliaria
    tmp = strtok(NULL,separar); //aqui parten los problemas T.T
    strcpy(name_proyecto,tmp);
    tmp = strtok(NULL,separar);
    strcpy(comuna,tmp);
    tmp = strtok(NULL,separar);
    strcpy(direccion,tmp);
    tmp = strtok(NULL,separar);
    strcpy(cant_inmuebles_char,tmp);
    cant_inmuebles=atoi(cant_inmuebles_char);
    strcpy(cant_vendida_char, tmp);
    cant_vendida=atoi(cant_vendida_char);
    tmp=strtok(NULL,separar);
    strcpy(valor_min_char, tmp);
    valor_min=atoi(valor_min_char);
    tmp=strtok(NULL,separar);
    strcpy(valor_max_char, tmp);
    valor_max=atoi(valor_max_char);
    insertar_proyecto_ordenado(name_inmobiliaria,name_proyecto,comuna, direccion, cant_inmuebles,cant_vendida,valor_min,valor_max);
    i=0;
    count=0;
    no_final=0;
  }
  fclose(file);
}


int main(){

proyecto *proyectos;
    printf("cargando proyectos...");
    cargar_proyectos();
    void mostrar_solo_proyectos(proyecto *proyectos);
    printf("\nmostrando proyectos");
    getche();
    return 0;
   
    }


Sucede que no aparece lo que contiene el archivo. Usando dev-c++, no me tira errores y tampoco me arroja violacion de acceso de memoria.
10  Programación / Ejercicios / Re: ejercicio 122 de C: pido ayuda -error en plena ejecución- en: 08 Marzo 2008, 20:26
gracias.... ;D
11  Forums Generales / Foro Libre / Re: "Amigo" la peor palabra que puedes escuchas de una mujer en: 08 Marzo 2008, 18:36
Pues tus amigos no deberian ser como yo....

Casi siempre soy yo quien empieza a hablar


Salu2
Sep...son algo quedados...pero bueno...qué se les va a hacer????? :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬ :¬¬
12  Programación / Ejercicios / Re: ejercicio 122 de C: pido ayuda -error en plena ejecución- en: 08 Marzo 2008, 18:29
gracias por la observación flakito81, pero se sigue cayendo.... :¬¬

Código:
#include <stdio.h>
#include <stdlib.h>
#define max 10

int main(){
    int i;
    char ifilename[] = "diccionario.txt";
    char palabra[20];
    char idChar;
   
    FILE  *ifp; //apuntador a archivo
    ifp = fopen(ifilename, "a+");// abre el archivo para add info.
                               //Si no existia se crea uno nuevo.
   
   
     if(ifp==NULL){
                   printf("Error al abrir fichero diccionario.txt");
                   exit(0);
                     } 
 
  for(i=0;i<max;i++){                                           
    printf("Ingrese una palabra a continuacion:");
    scanf("%s", &palabra);
    fprintf(ifp, "%s\n",  palabra);
                 }                 
  fclose(ifp);
   
       ifp = fopen(ifilename, "r");// abre el archivo para add info.
                               //Si no existia se crea uno nuevo.
   
   
     if(ifp==NULL){
                   printf("Error al abrir fichero diccionario.txt");
                   exit(0);
                     }   
     while(fscanf(ifp, "%s",  idChar) != EOF)//mientras no llegue al fin
           {
                          printf("%s", idChar);     //de archivo se escriben
                                 }                   //por pantalla los datos.
                                                     
   
    fclose(ifp); //cierra el archivo

   return 0;
}
En una de esas..encuentre la respuesta...
13  Forums Generales / Foro Libre / Re: "Amigo" la peor palabra que puedes escuchas de una mujer en: 07 Marzo 2008, 22:33
si van a follar...su lindo trasero se han de cuidar...porque sino el SIDA los puede matar...  :-X
_______________________________________________________________________
 Volviendo al tema: Yo por mi parte...he dejado a algunos chicos que "eran amigos", no por culpa de un fulano, sino porque estos "amigos", eran muyyyyyy sobrados, es decir, nesecitaban un ente que corriera tras de ellos, pero ellos se quedaban quietos si yo no les dirigía la palabra. Asi que revisen su comportamiento antes de qejarse "¿Por qué no me ama?"

Ahora si son amables y generosos, debe ser MUY frustrante eso :-(, pero el único comodín que puedes tener a cambio, es que si el galán :-(, es un rufián, tiene el plus de buscar instancias que le abran los ojos a la "amiga". >:D

...
14  Forums Generales / Foro Libre / Re: Preséntate aquí si eres nuevo en: 07 Marzo 2008, 21:44
hola.... :D
emm...me gusta mi alias... :D
soy de Chilena... :D
me gusta hacer galletas... :D
y estoy estudiando informática... :D
y espero hacer aportes, como también preguntar en este foro... :D
15  Programación / Ejercicios / ejercicio 122 de C: pido ayuda -error en plena ejecución- en: 07 Marzo 2008, 19:22
Hola:

Como verán soy n00b en este foro ;D y ayer me interesé en coger uno de los ejercicios de C y me gustó uno en particular que maneja ficheros:

Enunciado:
  Escribir un programa que solicite palabras y las agrege a un fichero llamado    c:\diccionario de forma que luego se puedan consultar las palabras una a  una.

Bueno ....para ver si el programa efectivamente guardaba las palabras, modifique el ejercicio y en vez de consultar, quería mostrar las palabras guardadas. El problema, que usando Dev-c++(S.O. Windows XP), no arroja errores o advertencias, pero a la hora de ejecutar el programa, arroja un error  algo así como..."este programa ha cometido un error y debe cerrarse".  Supongo que es un error con punteros.

Código:
#include <stdio.h>
#include <stdlib.h>
#define max 10

int main(){
    int i;
    char ifilename[] = "diccionario.txt";
    char palabra[20], idChar;
   
    FILE  *ifp; //apuntador a archivo
    ifp = fopen(ifilename, "a+");// abre el archivo para add info.
                               //Si no existia se crea uno nuevo.
   
   
     if(ifp==NULL){
                   printf("Error al abrir fichero diccionario.txt");
                   exit(0);
                     } 
 
  for(i=0;i<max;i++){                                           
    printf("Ingrese una palabra a continuacion:");
    scanf("%s", &palabra);
    fprintf(ifp, "%s\n",  palabra);
                 }                 
  fclose(ifp);
   
       ifp = fopen(ifilename, "r");// abre el archivo para add info.
                               //Si no existia se crea uno nuevo.
   
   
     if(ifp==NULL){
                   printf("Error al abrir fichero diccionario.txt");
                   exit(0);
                     }   
     while(fscanf(ifp, "%s",  &idChar) != EOF)//mientras no llegue al fin
           {
                          printf("%s", idChar);     //de archivo se escriben
                                 }                   //por pantalla los datos.
                                                     
   
    fclose(ifp); //cierra el archivo

   return 0;
}

Si alguien se la puede con el ejercicio, por favor, responder. :rolleyes:
Páginas: [1]






Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC