05.08.2020, 20:11 [+3 UTC]
в нашей команде: 4 686 чел. | участники онлайн: 0 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.89 (25.04.2020)
JS-v.1.45 | CSS-v.3.39

Общие новости:
13.04.2020, 00:02

Форум:
02.08.2020, 11:21

Последний вопрос:
04.08.2020, 22:11
Всего: 152763

Последний ответ:
05.08.2020, 14:34
Всего: 260348

Последняя рассылка:
05.08.2020, 01:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
12.10.2009, 22:34 »
Блок Иван/ Blin
Спасибо! Почему-то не подумал, что Excel может использовать другой каталог. Решил проблему использованием функции _fullpath из библиотеки stdlib. [вопрос № 173218, ответ № 255352]
25.04.2011, 19:50 »
Вадим Исаев ака sir Henry
Нда... Мне всегда не нравился с++... Компилятор довольно часто даёт маловразумительные сообщения об ошибках. И с каждым разом я убеждаюсь, что с++ язык совершенно нечеловеческий. smile Спасибо, Вы мне очень помогли. [вопрос № 182936, ответ № 266825]
08.01.2010, 09:58 »
Валерий Юрьевич
Спасибо за подробный ответ! [вопрос № 175899, ответ № 258454]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 306
Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 126
solowey
Статус: Профессионал
Рейтинг: 53

Перейти к консультации №:
 

Консультация онлайн # 144425
Раздел: • С / С++
Автор вопроса: Warobushek
Отправлена: 19.09.2008, 20:49
Поступило ответов: 3

В одной книге по Си прочитал, что использование "wt" при открытии файлов может привести к непереносимости программ.
Там написано, что нужно использовать "w" вместо этого.
-----------
Так ли это?

Состояние: Консультация закрыта

Ответ # 229706 от Виктор Пырлик

Здравствуйте, Warobushek!

Не «вместо».. первый параметр, в данном случае это w — указывает что сделать с файлом, спецификатор же t определяет как открыть файл, в данном случае — в текстовом режиме.
Обычно, не задают t т.к. Предполагается что по умолчанию открывается в текстовом режиме (что определяется переменной _fmode и режимом, устанавливаемым по умолчанию). Но наедятся на это не следует. Хотя, всё же явно задают только бинарный режим — b .
Я бы советовал использовать и t и b указывая явно. Хуже от этого не станет. А на переносимость программ это не влияет.

URL >> Описание функций C (Си) / C++ - fopen


Консультировал: Виктор Пырлик
Дата отправки: 19.09.2008, 21:03

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Здравствуйте, Warobushek!

Конечно, приведёт. Это опять чья-то самодеятельность. В стандарте "t" нет вообще. Цитирую §7.19.5.3 ISO/IEC 9899:TC2:

Приложение:


Консультировал: Хватов Сергей (Академик)
Дата отправки: 19.09.2008, 22:15

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 229730 от Provisor

Здравствуйте, Warobushek!
Да это так. Дело в том, что для перевода строки в разных ОС используются разные символды/сочетания символов: LF (0x0A) — в системах UNIX, CR (0x0D) — в системах MacOS, CR LF (0x0D 0x0A) — в системах DOS–Windows. Поэтому файл и не рекомендуется открывать в текстовом режиме.


Консультировал: Provisor
Дата отправки: 20.09.2008, 07:18

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 144425
Warobushek

# 1

= общий = | 20.09.2008, 12:33

to Виктор Пырлик && Хватов Сергей
Я в растерянности.. smile На что ориентироваться? Влияет или нет? Ответ Хватова Сергея более убедителен, т.к. ссылка на стандарт

to Provisor и все кто знает
А разве открытие файла в текстовом режиме не подразумевает замену сочетания символов перевода строки на единственный символ LF ('\n')
средствами стандартной библиотеки?

Хватов Сергей
Академик

ID: 20764

# 2

= общий = | 20.09.2008, 13:27 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

В стандарте только сказано про текстовые и двоичные файлы. Он не оговаривает, чем отличается работа с текстовыми и двоичными файлами, но устанавливает, что по умолчанию (без "b") файл открывается в текстовом режиме. А в чём это выражается (преобразование CRLF в NL, игнорирование '\0' или даже перекодировка) - это уже реализация вольна решать сама. Например, в UNIX-ах вообще не делается никаких преобразований.

Виктор Пырлик

# 3

= общий = | 20.09.2008, 13:28

Вы открываете без t - по умолчанию в текстовом режиме. И в какой ОС вы это откроете - не имеет значения.
Если вы открываете файл в Linux, который был создан и заполнен в Windows (например), то конечно управляющая последовательность будет другой.
Читая файл - вы не изменяете его. Если будите писать в него, то будет это делаться либо так, как принято в вашей ОС, либо так, как вы определили сами.
С другой стороны, открыв файл в бинарном режиме (допустим, у вас "по умолчанию" такой режим работает), вы конечно можете с ним работать - но всегда ли это то, что вам надо? Все равно, запись тех же строк будет выполнена по правилам данной ОС.. или, вы должны будите специально заботиться о том, что бы управляющая последовательность была такой, как вам надо. Режим работы определяется в первую очередь конкретной ситуацией.
К тому же, имеет значение и локаль, которая у вас стоит (для *nix).

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.17536 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.89 от 25.04.2020
Версия JS: 1.45 | Версия CSS: 3.39