Файловый ввод / вывод в C чтение строк из текстового файла - PullRequest
0 голосов
/ 06 апреля 2020

У меня проблемы с чтением всего содержимого одного текстового файла в строку. Всякий раз, когда есть разрыв строки, он не сохраняет предыдущие строки.

Например, если файл содержал:

this is stack overflow
and it is cool

Единственное, что строка будет иметь после чтения файла, это " это круто "

вот код:

FILE *inputFilePtr;
        inputFilePtr = fopen(inputFileName, "r");
        char plainText[10000];

        // if the file does not exist
        if (inputFilePtr == NULL)
        {
            printf("Could not open file %s", inputFileName);
        }

        // read the text from the file into a string
        while (fgets(plainText, "%s", inputFilePtr))
        {
            fscanf(inputFilePtr, "%s", plainText);
        }
        printf("%s\n", plainText);
        fclose(inputFilePtr);

Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 06 апреля 2020

Если вы хотите отобразить все содержимое файла, попробуйте:

    FILE *inputFilePtr;
    inputFilePtr = fopen(inputFileName, "r");
    char plainText[10000];

    // if the file does not exist
    if (inputFilePtr == NULL)
    {
        printf("Could not open file %s", inputFileName);
    }

    // read the text from the file into a string
    while (!feof(inputFilePtr)) //while we are not at the end of the file
    {
       fgets(plainText, "%s", inputFilePtr);
       printf("%s\n", plainText);
    }
     fclose(inputFilePtr);

Или, если вы хотите отобразить все содержимое файла в одной строке, используйте:

#include <string.h>
 int main()
 {
   FILE *inputFilePtr;
    inputFilePtr = fopen(inputFileName, "r");
    char plainText[10000];
    char buffer[10000];


  // if the file does not exist
    if (inputFilePtr == NULL)
    {
        printf("Could not open file %s", inputFileName);
    }

    // read the text from the file into a string
    while (!feof(inputFilePtr))
    {
      fgets(buffer, "%s", inputFilePtr);
      strcat(plainText,buffer);
    }
     printf("%s\n", plainText);
     fclose(inputFilePtr);

 }
...