elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Manual Notepad++: ejemplos de uso plugin TextFX


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Programa Loteria
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Programa Loteria  (Leído 2,383 veces)
mortaz

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Programa Loteria
« Respuesta #14 en: 19 Enero 2013, 02:05 »

esta precticamente todo, me imprime en el fichero result, me imprime en el fichero premios.txt y me lee el premios txt pero me queda que me imprima eso ultimo leido me lo imprima de la forma:
Primer premio: 949 8 Sin vender
Segundo premio: 5354 2 Lugo
etc que lo que me hace ahora es imprimirmelo todo seguido. Está de la seguiente manera:

void leerymostrarficherotxt(char *fichtxt){
        FILE *premiotxt;
        char lugar[91];
        //Abrir fichero para lectura de los numeros
     if ((premiotxt = fopen(fichtxt, "r")) == NULL){
        //Si no puede abrise o no existe.
        printf("El fichero '%s' no se puede leer", fichtxt);
        }
     else printf("\n    NUMEROS DE PREMIADOS:\n");
         fscanf (premiotxt,"%s", lugar);
        //Muestra datos por pantalla
        while ( !feof(premiotxt)){                      //Mientras no ha llegado a la marca de fin de fichero lee linea a linea
          printf("%s\t", lugar);                  //Escribe una de las lineas en la pantalla.
          fscanf(premiotxt, "%s", lugar);      //Lee siguiente linea hasta fin de linea o un maximo de 90 caracteres.
                      }
     fclose (premiotxt);
        }



void ponersinvender(char *fichtxt){
        FILE *premiosinvend;
        char lugar[91];

        if ((premiosinvend = fopen(fichtxt, "r")) == NULL){
          //Si no puede abrise o no existe.
           printf("El fichero '%s' no se puede leer", fichtxt);}
        else {printf("\nPremios que no se han vendido:\n");
                fscanf(premiosinvend, "%s", lugar);

          //Muestra datos por pantalla
              while ( !feof(premiosinvend)){                      //Mientras no ha llegado a la marca de fin de fichero lee linea a l$
                if (strstr (lugar, "Sin vender")){     //Si la cadena de busqueda esta incluida en dato
                  printf("%s", lugar);}
                 fscanf(premiosinvend, "%s", lugar);       //Lee la siguiente linea del fichero.
                }
        fclose(premiosinvend);
   }}

si podeis echarle un ojo al de mostrar sin vender que no muestra tambien estaria bien ;) gracias


En línea

durasno


Desconectado Desconectado

Mensajes: 376


Ver Perfil
Re: Programa Loteria
« Respuesta #15 en: 19 Enero 2013, 04:05 »

La verdad no entiendo bien cual es el problema, trata de detallar mas

Pregunta: las dos funciones abren distintos archivos??


Saludos

PD: cuando escribis codigo, arriba a la derecha hay algo que dice GeSHi, elegi donde dice C y pone el codigo dentro de [ code=c ] /* aca va codigo*/[ /code ]... El moderador te lo advirtio, si se lo toma mal por ahi te cierra el post xD


En línea

Ahorrate una pregunta, lee el man
mortaz

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Programa Loteria
« Respuesta #16 en: 19 Enero 2013, 15:59 »

Mi fallo esta en la forma de leer el txt, me lee una palabra por bucle, cuando yo quiero leer la línea completa para que así cuando compare con "Sin vender" encuentre coincidencias. Porque ahora lee una sola palabra por bucle y no da ninguna coincidencia porque compara un solo espacio del lugar (sin o vender) con sin vender, y claro, no lo encuentra. Gracias
En línea

durasno


Desconectado Desconectado

Mensajes: 376


Ver Perfil
Re: Programa Loteria
« Respuesta #17 en: 19 Enero 2013, 18:33 »

fscanf al igual que scanf lee hasta encontrar un blanco(espacio, tabulacion, salto de linea), si queres leer una linea entera tenes la funcion fgets. Pero si tu archivo tiene un formato especifico tambien podes usar fscanf; por ejemplo si el archivo es del tipo:

"123   8   Leo"
"456   2   mortaz"


podes usar algo como:
Código
  1. fscanf(file,"%d %d %s",var1,var2,str);


Saludos
En línea

Ahorrate una pregunta, lee el man
flony


Desconectado Desconectado

Mensajes: 548



Ver Perfil
Re: Programa Loteria
« Respuesta #18 en: 20 Enero 2013, 20:59 »

haber si entendi elprobema ...me dan un archivo ficnumero.dat donde solo estan los billetes vendidos, genero numero ganador , me fijo del archivo si esta, si esta lo agrego a archivo premio.txt y lo anoto en registro, si no esta genero otro, ...asi 30 veces evidentemente del mismo archivo obtengo los vendidos o no .......por eso decia que la funcion fscanf me parecia lo ideal, como sabran las busqueda sera distinta en base a como esten anotado lo numeros vendidos
02 2154
03 2152
10 2154
o
022154
032152
102154
« Última modificación: 20 Enero 2013, 21:04 por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
programa de loteria en c++
Programación C/C++
tinchouy 1 3,829 Último mensaje 27 Septiembre 2006, 04:46
por JuszR
LOTERIA HELP!!
Java
kawasaki 3 2,652 Último mensaje 27 Diciembre 2008, 16:21
por sapito169
Ayuda con programa para saber la combinaciones en una loteria
Programación C/C++
pakoBDA 1 1,689 Último mensaje 22 Marzo 2010, 04:21
por Littlehorse
haber si es verdad que me a tocado la loteria
Foro Libre
sting time 4 2,528 Último mensaje 2 Octubre 2011, 00:59
por eat7herich
[principiante] Loteria
Java
Geek7 6 581 Último mensaje 28 Junio 2013, 01:47
por Mitgus
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines