Перевод строки

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Перевод строки

Сообщение GM » 14.05.2006 (Вс) 18:21

Вообщем в очередной раз поспорил с преподом насчет Си. В прошлый раз я доказывал о возможности использования оператора "запятая" в условии цикла for.

Сейчас вот такая проблема:
АФАИК на разных платформах перевод строки выглядит по разному:
Windows/DOS - CR + LF
Unix - LF
MacOS - CR
Отсюда следут, что если в текстовом режиме писать в файл перевод строки(например вот так fprintf(f,"\n")), то на разных платформах будут записаны разные симвлолы. Препод же утверждает, что в любом случае будет записываться CRLF.

Кто в этом случае прав?
الفيجوال بيسك الرابح

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.05.2006 (Вс) 18:31

На MacOS проверить не могу, но в *никсах есть правило, что текстовый и двоичный режимы доступа к файлу полностью эквивалентны. В частности, в обоих режимах запишется LF.
Изображение

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 14.05.2006 (Вс) 22:48

MacOS X в душе тот же UNIX, там тоже пишется LF, который, собственно и есть \n. CR - это \r. То есть, по хорошему, писать надо \r\n для Windows, но Windows настолько умен (точнее его API, что \n тоже проходит).
А вообще, если быть точным, то какой компилятор используется?
Посмотрите в .h файле, что нам записано на новую строку (NEWLINE, NEWLN, NLINE что-то вроде этого), то, собственно, и будет записано.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 15.05.2006 (Пн) 7:57

Собственно вот и статья с википедии:
http://en.wikipedia.org/wiki/Newline

Все же я был прав :twisted:
الفيجوال بيسك الرابح

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.05.2006 (Пн) 11:44

GM писал(а):Собственно вот и статья с википедии:
http://en.wikipedia.org/wiki/Newline

Все же я был прав :twisted:

Угу, я тоже :-)
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 15.05.2006 (Пн) 18:08

Подхожу сегодня к преподу, и говорю типа, вот вы говорили нам что перевод строки во всех осях делаеться через CRLF, но я имею потверждение, что это не так. На что он мне говорит: "Не правда, ничего подобного я не говорил. Естественно перевод строки на никсах делаеться через LF. А мой пример только для DOS/Windows..."
Вместо того что бы признать свою ошибку, просто сказать что такого не было. Вот так. :roll:
Последний раз редактировалось GM 16.05.2006 (Вт) 7:34, всего редактировалось 1 раз.
الفيجوال بيسك الرابح

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 15.05.2006 (Пн) 18:16

GM
Ты случайно не в полетехе учишся?

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 15.05.2006 (Пн) 20:21

Ramzes писал(а):GM
Ты случайно не в полетехе учишся?

Да, в политехе.
الفيجوال بيسك الرابح

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 16.05.2006 (Вт) 10:06

GM
Тогда не спорь с преподами, как говорится в подписи у Ameda, не с порть с дураком... :wink:


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 80

    TopList