Я думаю, каждый из нас, кто писал или пишет на С++, знаком со строкой
freopen("input.txt", "rt", stdin);
А вопрос у меня следующий.
Почему "rt"?
Сайт cppreference.com не дал мне ответа на этот вопрос. Более того, там даже нет "rt" как возможного значения параметра mode функции freopen.
P.S.
Я пишу "r" все время. Все работает. Что я делаю не так?
т.е. по идее rt означает открытие для чтения в текстовом режиме, а rb в бинарном.
Но на пример в стандарте С++ 2003 года при упоминании fopen про rt не говорится, т.е. r - открытие в обычном режиме, а rb - в бинарном. t - скорее всего игнорится везде.
Ну я, вообще-то, на Си не пишу, но вот тут, вроде бы, хорошо объяснено:
http://www.codenet.ru/progr/cpp/spru/freopen.php
И насколько я знаю, указание ключа "rt" не поможет программке на Linux автоматически правильно прочитать переводы строк в формате Windows. Т.е. обработку строк в таких случаях придется писать самому, или если очень лень, то использовать какую-нибудь специальную библиотечку.
ссылка:
http://msdn.microsoft.com/ru-ru/library/61dstksf.aspx
http://msdn.microsoft.com/ru-ru/library/yeby3zcb.aspx