La lectura y la Visualización de contenido del Archivo de Texto a través de la codificación de C

Estoy tratando de código de un juego en C que se ocupa de la selección de carreras.
Cada una de las razas tiene sus propias «historias» y cuando el usuario elige a leer una de sus historias,
lo que quiero que suceda es que,

Mientras el programa se está ejecutando en el Símbolo del sistema, se mostrará el contenido que he escrito en el archivo de texto acerca de la historia de la selección de la raza.

Esto es lo que he hecho hasta ahora.

void Race(char nameRace[20])
{
     int race_choice,race_choice2,race_story;
     FILE *race;
     FILE *race1;
     FILE *race2;
     FILE *race3;

     printf("The Races: 1.Human   2.Elf   3.Orc\n");
     printf("Press 1 for Details of Each Races or 2 for selection: ");
     scanf("%d",&race_choice);
     if (race_choice==1)
     {
          printf("Which Race do you wish to know about?\n\t1.The Human\n\t2.The Elf\n\t3.The Orc\n\t: ");
          scanf("%d",&race_story);
          if (race_story==1)
          {
               race1=fopen("race1.txt","r");
               fgetc(race1); //This does not display what I have typed on the race1.txt file on Command prompt.
               //And I plan to write 2~3 paragraphs on the race1.txt file.
               printf("\nGo Back to the Selection?(1 to Proceed)\n ");
               scanf("%d",&race_choice2);
               if (race_choice2==1)
               {
                    printf("\n\n");
                    Race(nameRace);
               }
               else
               {
                    wrongInput(race_choice2);//This is part of the entire code I have created. This works perfectly.
               }

          }
     }
}

Ayudarme por favor? 🙂 Por favor!

InformationsquelleAutor Sung Min Kim | 2013-09-13

3 Kommentare

  1. 1

    La funcionalidad que parece que le falta es la capacidad para leer un archivo de texto y salida de la misma. Por lo que podría ser una buena idea para el código de una función que hace precisamente esto, y entonces cada vez que usted necesita para mostrar el contenido de un archivo sólo se puede pasar un archivo de nombre a nuestra función y se deja tomar el cuidado de la obra, por ejemplo,

    static void display_file(const char *file_name)
    {
        FILE *f = fopen(file_name, "r");      //open the specified file
        if (f != NULL)
        {
            INT c;
    
            while ((c = fgetc(f)) != EOF)     //read character from file until EOF
            {
                putchar(c);                   //output character
            }
            fclose(f);
        }
    }

    y, a continuación, dentro de su código a llamar a este como por ejemplo,

    display_file("orcs.txt");
  2. 0

    fgetc función lee y devuelve un único carácter de archivo, no se imprime.
    Así que usted necesitará hacer lo siguiente:

    while(!feof(race1)) { //Following code will be executed until end of file is reached
    
    
    char c = fgetc(race1); //Get char from file
    printf("%c",c); //Print it
    }

    Va a imprimir el contenido de race1 char a char.

  3. 0

    Creo que usted probablemente querrá leer el archivo línea por línea, así que es mejor utilizar fgets() en lugar de fgetc().

    Ejemplo:

    while(!feof(race1)) //checks to see if end of file has been reached for race1
    {
        char line[255]; //temporarily store line from text file here
        fgets(line,255,race1); //get string from race1 and store it in line, max 255 chars
        printf("%s",line); //print the line from the text file to the screen.
    }

    Si reemplazar fgetc(race1) con el fragmento de código anterior, es posible que funcione. No he intentado correr pero se debe trabajar.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea