На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Откуда лишний символ <<'\r' ? , Вывожу в поток os<<Dom<<'\r'<<'\n'; а получаю в файле os<<Dom<<'\r'<<'\r'<<'\n';
    Есть класс:
    ExpandedWrap disabled
      class my_ostream: public ofstream{};

    Создаю поток:
    ExpandedWrap disabled
      my_ostream os(...);
      int Dom=0;

    Пишу:
    ExpandedWrap disabled
      os<<Dom<<'\r'<<'\n';

    В файле на диске получаю (смотрю с помощью Far в шестнадцатиричном коде):
    ExpandedWrap disabled
      30 0D 0D 0A

    Это
    ExpandedWrap disabled
      <<'\r'<<'\r'<<'\n'


    Откуда лишний символ <<'\r' ?
      Виндовс. Он сам добавляет \r при выводе \n. Ну или собранная для виндовса системная библиотека. Чтобы один и тот же исходник (в котором перевод строки это просто \n) давал одинаковый видимый результат (наблюдаемое поведение, если хотите) при сборке на разных системах.
        Цитата Dushevny @
        Виндовс. Он сам добавляет \r при выводе \n. Ну или собранная для виндовса системная библиотека. Чтобы один и тот же исходник (в котором перевод строки это просто \n) давал одинаковый видимый результат (наблюдаемое поведение, если хотите) при сборке на разных системах.

        Я просмотрел файл созданный этой же программой в 1997 году, и оказалось, что в нем только 2 символа, При выводе '\n', '\r' не добавлялось. Если добавляет виндовс, то с какого времени это началось? Изучение вопроса показало, что и файлах 2017 года, лишний символ не добавлялся! Но не помню какая версия нвиндовс тогда была.
        Сообщение отредактировано: a_n_y_a -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0274 ]   [ 16 queries used ]   [ Generated: 28.03.24, 12:59 GMT ]