Скрытые символы в текстовом файле

Максим Глухманюк

Добрый день, у меня возник вопрос.
В данный момент работаю с текстовыми файлами в Windows, в Си. Столкнулся с очень странным поведением.

Есть текстовый файл Numbers.txt. При записи в него какой-либо информации без переносов (нажатия Enter) число символов в файле соответствует числу символов, которые я ввел.

НО!

Если я ставлю перенос строки (Enter), то размер файла увеличивается на два байта, а не на один. Причем, каждый перенос строки увеличивает размер файла на два байта.

Файл пробовал создавать и через блокнот, и через NotePad++. Результат один.

На Си загружаю файл в текстовом режиме:

fNumbers = fopen("Numbers.txt", "r");
...
memset(dNumbers, 0, sizeof(char) * countChars);
fread(dNumbers, countChars, 1, fNumbers);

Символы переноса строки занимают 1 байт, в конце файла имеется хвост из пустых байтов - функция fread не перезаписывает эти пустые байты, они остаются такими, какие и были после вызова memset().

Объясните мне, почему перенос строки в текстовом редакторе (Enter) увеличивает размер файла на 2 байта, и где этот дополнительный скрытый байт за каждый перенос? Его нигде не видно, даже в программе на Си.

Максим Глухманюк около 1 месяца назадСпасибо 0
2 чел.