Bloque 8.1: Lectura de Ficheros de Texto con fgetc y fgets

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 74

  • @esmerinfr
    @esmerinfr 10 років тому +42

    da gusto ver videos tan bien hechos n.n

  • @guillermoramirez5834
    @guillermoramirez5834 8 років тому +3

    Muchísimas gracias por la ayuda que nos das a la gente que quiere aprender a programar que sé de antemano que no somos pocos!!!

  • @dominmartindj
    @dominmartindj 5 років тому +3

    Te agradezco muchísimo que te hayas esforzado en hacer un video en el cual a mi me ha ayudado y a otros también. Ojalá te vaya super bien porque lo tienes merecido. Un saludo amigo !

  • @elchamuskooficial4528
    @elchamuskooficial4528 7 років тому

    mira es excelente me voy a suscribir eres unos de los únicos que enseña buenas tecnicas

  • @leonardomorales4955
    @leonardomorales4955 7 років тому +1

    Sin duda explicas mejor que mi Profesor . Buenos Tutoriales y bien Organizados ¡Muchas Gracias!

  • @cesargamboa13
    @cesargamboa13 6 років тому +1

    /*
    Vaya luego de investigar un poco logre hacerlo funcionar con este codigo, solo que deja un espacio entre caracter y caracter no se por que aun. Gracias y saludos Emilio
    Bloque 08.01 Ficheros. Lectura y escritura
    */
    #include
    #include
    int main(){
    system("color 0A");
    //Como abrir un fichero y como leer de el
    //Primero se declara un cochero
    char aux;
    FILE *f;//ahora f es un fichero
    //Se parte del principio que existe previamente un fichero para leer de el. El bloc de notas tiene que estar cerrado
    //Inicializar la variable con el fichero
    f=fopen("ejemplo.txt","r");//No hace falta colocar la direccion porque el archivo esta en la misma carpeta del programa, r es en modo read only
    if(f==NULL){
    printf("No se ha podido abrir el fichero");
    exit(1);
    }
    //Leer desde el fichero
    do{
    //manera 1 de leer con fgetc. Lee un caracter a la vez, hasta que llegue a EOF.
    aux=fgetc(f);
    if feof(f){
    break;
    }
    printf("%c",aux);//asi lee todos los caracteres del archivo y al llegar a EOF se sale del bucle
    }while(1);
    printf("
    ");
    fclose(f);
    system("pause");
    return 0;
    }

  • @xemagorra
    @xemagorra 10 років тому +1

    Muchas gracias, muy util y claro, no entiendo como no tienes mas visitas la verdad, todo muy bien explicado, seguir asi, un saludo!

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  10 років тому +1

      Imagino que a la gente no le interesara demasiado el lenguaje C, por esa razon me he puesto ahora con Java. Tambien puede ser que yo no sepa publicitarlo demasiado bien, esto ultimo es muy problable!
      Por curiosidad, ¿como conociste el canal?

    • @xemagorra
      @xemagorra 10 років тому

      Empieza A Programar Estoy estudiando ingeniería informatica y busque en youtube informacion sobre ficheros y salió tu video el primero :)

    • @emmanuelvalverderamos
      @emmanuelvalverderamos 10 років тому

      Empieza A Programar Yo adoro C, y en parte es gracias a tus tutoriales

  • @luanaselena6797
    @luanaselena6797 7 років тому

    Da gusto aprender con tus videos!

  • @esmerinfr
    @esmerinfr 10 років тому +10

    que calidad de videos!!

  • @lobosolitario9800
    @lobosolitario9800 4 роки тому

    Exelente explicacion mil gracias por la informacion y saludos desde México....!!!!

  • @mavibenvegnu7996
    @mavibenvegnu7996 8 років тому +6

    gracias tronco. muchas gracias. explicas genial

  • @r01blue
    @r01blue 8 років тому +2

    Gracias!! me sirvio mucho! La verdad tenia varia dudas y me las aclaraste !=)

  • @ernes011
    @ernes011 9 років тому +5

    Que fenomeno, mil gracias!

  • @MsRoropiroro
    @MsRoropiroro 8 років тому +1

    Excelente tus videos y todo muy bien explicado. ¡Me han ayudado bastante!

  • @theanonimo26able
    @theanonimo26able 5 років тому

    Este ha sido un gran vídeo, muchas gracias.

  • @afma060992
    @afma060992 5 років тому

    Muchas gracias profesor

  • @joseb2802
    @joseb2802 3 роки тому

    Eres un jefe

  • @TutorialeslamuerteTLM
    @TutorialeslamuerteTLM 6 років тому

    Mi profe de programación nos tiene viendo tanto sus vídeos que ya siento que Emilio es mi verdadero profe y el que tengo acá es una decoración

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  6 років тому

      No me digas... pues vaya con tu profesor... dame mas datos, que ya tengo curiosidad.

  • @clakoclakson
    @clakoclakson 9 років тому

    Muchíssimas gracias!

  • @danielvr746
    @danielvr746 9 років тому

    Buenas he seguido todos los videos de aprender C, y en este último decirte que en cadiz suelen poner los ficheros txt de este tipo, si hay alguien de por aquí que este advertido...
    Gracias por los tutoriales!!!

  • @Carguija1
    @Carguija1 5 років тому

    una cosa, asi, solo se pueden leer ficheros que solo y solo se hayan escrito antes con dev++ tambien? o yo puedo crear un archivo.txt desde el escritorio introducir algo en el y leerlo con dev++...?

  • @alfredopolancohuertas391
    @alfredopolancohuertas391 7 років тому +1

    Como le quito los warning correspondientes a las lineas 14 y 28, que aparecen al compilar el programa?

    • @josueelisea7566
      @josueelisea7566 7 років тому +2

      Importa la librería #include
      Saludos.

  • @Luis-xw6ye
    @Luis-xw6ye Рік тому

    Saludos!! una duda, si me piden guardar una estructura en un fichero, cómo podría hacerlo ? !!

  • @taylorfeitopenamaria7226
    @taylorfeitopenamaria7226 3 роки тому

    muy bueno

  • @genomainteractivo2872
    @genomainteractivo2872 4 роки тому

    Hola, tengo un problema, y es que estoy compilando en Mac y cuando escribo un archivo desde un programa compilado con la función fopen no me lo escribe en la misma carpeta del programa, siempre se va a la raíz de la carpeta de mi usuario... como puedo arreglar este problema?

  • @ArgenrX
    @ArgenrX 4 роки тому +1

    No debería ser al revés?
    Mientras la condición no se cumpla (estar al final del fichero) sigue ejecutándose. Cuando llega al final, se vuelve VERDAD la condición, por lo que el "mientras no sea verdad" se cumple y sale del bucle.

  • @ricon_curioso
    @ricon_curioso 10 років тому +3

    Para leer con fgets no hace falta hacer ningún bucle, porque se va a guardar todo en un string en una sola tajada, no?
    De todas maneras, no viene mal saber lo del !feof.
    Gracias por tus videos! :)

    • @juan.reingut
      @juan.reingut 6 років тому +1

      El bucle es necesario cuando el fichero tiene saltos de linea ya que la función fgets sólo lee hasta un salto de línea. Saludos.

  • @maxbentz
    @maxbentz 7 років тому

    Loa socumwnroa pdf de dropbox ya no existen verdad?

  • @andreicharpentierquesada4530
    @andreicharpentierquesada4530 5 років тому +1

    Quiza no parezca de mucha utilidad debido a las bases de datos, sin embargo esto lo estoy utilizando en mi tesis debido a que tengo que hacer una simulacion matematica y el metodo mas fiable de hacerlo es con lenguaje C, solo un dato curioso, buen video

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  5 років тому +2

      Si lo que quieres es generar un fichero para luego importarlo en algún lugar, lo mejor es hacerlo con un fichero, sin embargo si lo que quieres es tratar esa información en otro momento dado dentro del programa, lo ideal es una base de datos. Puedes utilizar bases de datos como SQLite en C, aunque si lo que necesitas es potencia, yo daria el salto a Java, ya que con paralelismo, es mucho mas rapido que C.
      Un saludo.

    • @andreicharpentierquesada4530
      @andreicharpentierquesada4530 5 років тому

      @@EmpiezaAProgramar en realidad en mi rama(embebidos) se busca mas bien dar un salto hacia abajo, lenguajes como c, assembler o ya mucho mucho c++.
      Java es excelente en procesadores, pero en microcontroladores y demostraciones matematicos consume bastantes recursos.
      Pero lo de sqlite si que lo estudiare a detalles, saludos

  • @Diego-jf1ti
    @Diego-jf1ti 8 років тому

    Hola, si yo quiero leer un archivo y que el programa solo me escriba 9 caracteres(para luego meter un tabulador y que siga escribiendo despues de meter un /t) como se haria?

  • @antonete125
    @antonete125 7 років тому

    no entiendo por qué si primero uso
    while(fgetc(p)!= EOF)
    i++;
    hasta ahí bien , cuenta los caracteres del fichero pero después intento usar fgets:
    fgets(cad, i+1,p);
    puts(cad);
    me imprime en pantalla una cosa muy rara, a q se debe? estoy casi seguro q se debe al fgetc pero no entiendo por que

  • @joseponce6250
    @joseponce6250 8 років тому

    Hola, ¿alguna sugerencia de porque no compila la parte a continuación del codigo?
    while(!feof(f)){
    fgets(aux2,100,f);
    printf("%s",aux2);

    • @joseponce6250
      @joseponce6250 8 років тому

      ya esta! faltaba lo comentado abajo "#include"

  • @cesargamboa13
    @cesargamboa13 6 років тому

    /*
    Hola amigo Emilio, muchas gracias por tus videos, no se si aun respondes comentarios de esta serie pero por las dudas te pregunto lo siguiente:
    ¿Que puede estar fallando en este codigo que no da error de apertura de archivo pero no muestra nada por pantalla?, de hecho luego de pasar el depurador noto que lee el primer caracter
    y llega a la condicion EOF y se sale como si el archivo existiera pero estuviera vacio. Y lo creé con el bloc de notas y me asegure que no estuviera abierto.
    gracias y saludos amigo.
    Bloque 08.01 Ficheros. Lectura y escritura
    */
    #include
    #include
    int main(){
    system("color 0A");
    //Como abrir un fichero y como leer de el
    //Primero se declara un cochero
    char aux;
    FILE *f;//ahora f es un fichero
    //Se parte del principio que existe previamente un fichero para leer de el. El bloc de notas tiene que estar cerrado
    //Inicializar la variable con el fichero
    f=fopen("ejemplo.txt","r");//No hace falta colocar la direccion porque el archivo esta en la misma carpeta del programa, r es en modo read only
    if(f==NULL){
    printf("No se ha podido abrir el fichero");
    exit(1);
    }
    //Leer desde el fichero
    while(aux != EOF){
    //manera 1 de leer con fgetc. Lee un caracter a la vez, hasta que llegue a EOF.
    aux=fgetc(f);
    printf("%c",aux);//asi lee todos los caracteres del archivo y al llegar a EOF se sale del bucle
    }
    printf("
    ");
    system("pause");
    return 0;
    }

    • @daianaanabelkaneshiro9999
      @daianaanabelkaneshiro9999 4 роки тому +1

      Probe el codigo y me anduvo perfecto. Revisa si el archivo se encuentra guardado en la misma carpera que los .c

    • @cesargamboa13
      @cesargamboa13 4 роки тому

      @@daianaanabelkaneshiro9999 muchas gracias por tomarte el tiempo y la molestia de probar el código. Voy a revisarlo de nuevo. Gracias.

  • @gplorusso3967
    @gplorusso3967 7 років тому

    Hola, estoy viendo vuestro video de la funcion rand es C, necesito saber como usarla para generar palabras aleatorias de un fichero, tengo un fichero llamado Animales.txt donde tengo escrito nombres de animales y quiero que escoja una palabra para jugar al ahorcado

  • @xaviergomezdelatorre6718
    @xaviergomezdelatorre6718 4 роки тому +1

    F en el chat por el fichero de texto.

  • @carlossantamaria1820
    @carlossantamaria1820 4 роки тому

    entonces fgetc y fgets son lo mismo pero uno es mas eficiente que otro?

  • @alexinhdez7523
    @alexinhdez7523 9 років тому

    Hola, de antemano muchas gracias por tus excelentes vídeos.
    Te he estado siguiendo desde el bloque 1.1 y la verdad que muchas felicidades.
    Sin embargo, en este vídeo estoy teniendo problemas con mi programa, he hecho todo lo que mencionas y lo único que ocurre es que aparece el msj "No se ha podido abrir el fichero". Ya tengo el archivo .txt en la misma carpeta que el programa y todo pero no se que ocurre. Crees que me puedas ayudar a ver cual es el posible fallo? De antemano GRACIAS!!!!!!!!!!!

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  9 років тому

      Alexin Hdez o se si podre ayudarte, pero copia tu codigo, o al menos la parte encargada de abrir un fichero.
      Un saludo.

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  9 років тому +1

      Alexin Hdez aahhmm se me olvidaba, tambien deberias de pasarle el depurador para ver donde se encuentra exactamente el fallo.

    • @alexinhdez7523
      @alexinhdez7523 9 років тому

      Muchas gracias por tu atención ;)
      Ya pasé el depurador, y en la sección de exit(1) se sale y ya no avanza... no se que se puede hacer. Este es mi código:
      // 8.1 Lectura de ficheros de texto con fgetc y fgets
      // Funciones de lecturas de fichero.txt
      #include
      int main ()
      {
      char aux;
      char aux2[100];
      FILE *f;
      f = fopen("1.txt", "r");
      if (f == NULL){
      printf("No se ha podido abrir el fichero.
      ");
      exit(1);
      }
      while (aux != EOF){ // empieza a programar EOF (caracter fin de fichero)
      aux = fgetc(f);
      printf("%c", aux);
      }
      printf("
      ");
      fclose(f);

      f = fopen("1.txt", "r");
      if (f == NULL){
      printf("No se ha podido abrir el fichero.
      ");
      exit(1);
      }
      while(!feof(f)){
      fgets(aux2, 100, f);
      printf("%s", aux2);
      }
      printf("
      ");
      fclose(f);
      system ("pause");
      return 0;
      }
      Te agradeceré muchísimo tu ayuda
      Saludos

    • @DevMind89
      @DevMind89 7 років тому +1

      para usar la funcione exit(); necesitas la librería

  • @antoniobolanos1270
    @antoniobolanos1270 7 років тому

    Amigo, antes que nada felicitaciones por tus vídeos; son excelentes y prácticos. Todos tus ejemplos me han funcionado pero, este último NO! Y la verdad no sé porque dado que ya revise mi programa mil veces y no le encuentro. Te agradeceré tus comentarios. Ya probé todas las ubicaciones del fichero Ejemplo.txt y sólo me aparece "No se pudo abrir el fichero" Este es mi código:
    // Bloque 8.1 Funciones de lecturas de un fichero txt.
    #include
    #include
    int main (){
    char aux,aux2[100];
    FILE *f;
    f = fopen("C:\Ejemplo.txt","r");
    if(f == NULL){
    printf("No se pudo habrir el archivo.
    ");
    exit(1);
    }
    while(aux != EOF){
    aux = fgetc(aux); // fgetc: caracter x caracter hasta el final.
    printf("%c",aux);
    }
    printf("
    ");
    fclose(f);
    f = fopen("C:\Ejemplo.txt","r");
    if(f == NULL){
    printf("No se pudo habrir el archivo.
    ");
    exit(1);
    }
    while (!feof(f)){ // ! significa not
    fgets(aux2,100,f);
    printf("%s",aux2);
    }
    fclose(f);
    system("pause");
    return 0;
    }

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  7 років тому

      Termino por funcionarte? Imagino que tendrias algo mal en la ruta del fichero...

    • @antoniobolanos1270
      @antoniobolanos1270 7 років тому

      Amigo, efectivamente la ruta del archivo txt estaba incorrecta. Lo corregí y ya funcionó.

    • @lucasfernandez6848
      @lucasfernandez6848 3 роки тому

      a mi me paso que puse el nombre del archivo de texto como Ejemplo.txt, cuando en realidad solo debia llamarse Ejemplo

  • @elestudiante493
    @elestudiante493 3 роки тому

    A alguien le pasa que si husa fgets en un programa algo largo y con llaves deben poner el fgets 2 veces por que si no, no les hace caso y no lo lee

  • @juanacunanavarrete9667
    @juanacunanavarrete9667 10 років тому

    Ola amigo de empieza a programar tengo una duda en el programa. Mi duda sería en la línea 15 a la 18.
    while (aux != EOF){
    aux = fgetc (f);
    printf ("% c", aux);
    }
    Porque si tu te fijas estarías preguntando letra por letra en el while entonces nunca terminaría el bucle while debido a que nunca se cumpliría la condición.
    Por ejemplo ingresas un E se guarda en la memoria auxiliar pregunta si E != EOF luego ingresa un O y pregunta O != O y al final ingresas un F y pregunta si es F != EOF y por lo que creo que no se cumpliría nunca el while

  • @luisalfonsohernandezsilva2413
    @luisalfonsohernandezsilva2413 9 років тому

    Me da un error en el exit(1) me dice que no esta declarado

    • @dohmmmmm...douuuughnutss..8269
      @dohmmmmm...douuuughnutss..8269 8 років тому +2

      +luis alfonso hernandez silva Creo recordar que en un video anterior a este Emilio dijo que #include no era estrictamente necesario porque ya viene "incluido" en el programa, pero que era muy buena costumbre ponerlo. Como cualquier humano, a Emilio se le olvidó ponerlo. Asi que si lo pones no te saldra, aunque ya podias haber investigado un poco tu...
      Un saludo.

    • @scenesmovies7405
      @scenesmovies7405 8 років тому

      incluye la biblioteca #include , hay esta esa funcion ... o crea una igual ...

    • @scenesmovies7405
      @scenesmovies7405 8 років тому

      pero como constumbre de un buen programador tienes que incluirla pro que te toparas con otros compiladores que tendras que hacerlo, otra cosa el compilador te ayuda pero el que programa eres tu ....

  • @axelok9835
    @axelok9835 5 років тому

    Imposible, no logro hacer que funcione, siempre me pone que no se ha podido abrir fichero, lo guardo en la misma carpeta todo igual q el video

    • @rubenmuro9655
      @rubenmuro9655 5 років тому

      me pasa igual

    • @EnBuenChileno24
      @EnBuenChileno24 4 роки тому +2

      Ojo de no poner ejemplo.txt tienes que que poner nuevo.fichero de texto y solo poner el nombre. El txt lo pone automáticamente window.

    • @mrkts8944
      @mrkts8944 2 роки тому +1

      @@EnBuenChileno24 GRACIAS BUEN HOMBRE

  • @brunoronaldomoraestrada1439

    En 2023 aprendiendo ficheros y me confunde mucho estos temas

  • @morgan21639
    @morgan21639 8 років тому

    No sería lógico primero enseñar como crear un fichero, porque el programa que ha creado no funciona si no hay fichero txt.

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  8 років тому

      Claro,por eso lo comento desde el principio, concretamente en 2m20s

  • @louiziusjeanemmanuel8219
    @louiziusjeanemmanuel8219 2 роки тому

    si no te anda el programa, acordate de agregar la libreria stdlib.h