05
Июл
2022

Как адекватно записать содержимое файла в строку?

Имеется код для записи содержимого файла в строку, зная точный размер содержимого файла (узнается заранее):

void read_file(FILE *fd, char *text, int size)
{
    fgets(text, size, fd);
}

Далее я посимвольно перебираю и распечатываю строку:

for(int i=0; i<size; i++)
{
    printf("%c", text[i]);
}

Все в порядке в случае если текст в файле является однострочным. Но как только я добавляю переносы строки, или табуляцию, все ломается. Распечатка символов просто заканчивается на моменте первого переноса строки. Наглядно:

введите сюда описание изображения

Мой вопрос заключается в следующем: как я мог бы получать содержимое файла, включая \n, \t и прочие невидимые управляющие комбинации? Есть ли в C возможность читать текст включая эти символы как обычные, доступные к перебору и обращению через string[n]? Файл открыт в бинарном варианте.

Источник: https://ru.stackoverflow.com/questions/1426897/%D0%9A%D0%B0%D0%BA-%D0%B0%D0%B4%D0%B5%D0%BA%D0%B2%D0%B0%D1%82%D0%BD%D0%BE-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D0%BE%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-%D0%B2-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83

Тебе может это понравится...

Добавить комментарий