2009-04-21 4 views

ответ

11
fprintf(your_file, "\n"); 

Это будет преобразован в соответствующее EOL в STDIO библиотеки на вашей операционной системе, при условии, что вы открыли файл в текстовом режиме. В двоичном режиме преобразование не происходит.

+1

ЕСЛИ файл открыт в текстовом режиме –

+0

Да, конечно. Я должен был включить это с самого начала. Обновлено сейчас. – hlovdal

+0

Ответчик явно говорил о текстовых файлах. – Joey

12

Материал из Википедии:

При записи файла в текстовом режиме, «\ п» прозрачно переводится в нативной последовательности новой строки, используемой системой , которая может быть больше, чем один характер. (Обратите внимание, что реализация С допускается не хранить символы новой строки в файлах. Для например, строки текстового файла может храниться в виде строк таблицы SQL или в виде записей фиксированной длины.) Когда чтение в текстовом режиме, последовательность нулевой последовательности переведена обратно на '\ n'. В двоичном режиме выполняется второй режим ввода-вывода, поддерживаемый библиотекой C, без перевода , и внутреннее представление любой последовательности выводится непосредственно.

8

При открытии файла в текстовом режиме (передать «ш» в fopen вместо «термометру») любые символы новой строки, записываемые в файл, будут автоматически конвертированы в соответствующую последовательность новой строки для системы. После чтения файла последовательности Newline будут переведены обратно на символы новой строки.

Вот почему важно различать текстовый и двоичный режим; если вы пишете в двоичном режиме, C не будет вмешиваться в байты, которые вы пишете в файл.

+0

+1 за упоминание различия между текстом и двоичными файлами (и для того, чтобы избить меня!) –