Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2016, 22:31   #1
Tiphon
Новичок
Джуниор
 
Регистрация: 15.01.2016
Сообщений: 3
По умолчанию Стандартная библиотека ввода/вывода

http://pastebin.com/Q496y58E

Вывод программы такой:


Откуда берутся первые 4 байта которые читает маркер?
Знакомый пробовал на своём компиляторе, у него всё нормально (т.е. вывод 8 16 24 32 40)

Из-за этого косяка у меня программы, которые используются маркеры работают неверно. Например вот эта http://pastebin.com/DdRTEkSn

У других опять же всё норм. В структуре самого файла тоже всё в порядке.


Что я делаю не так?
Tiphon вне форума Ответить с цитированием
Старый 15.01.2016, 23:13   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Что я делаю не так?
А файл будет?

Код:
    while (getline(inOut, s)) //Прочитали String5{
           //...
           mark = inOut.tellg();//Что теперь вернет tellg?
           //...
    }
Цитата:
Знакомый пробовал на своём компиляторе
Может у него в конце файла перенос строки?

Последний раз редактировалось Stilet; 16.01.2016 в 09:44.
Croessmah вне форума Ответить с цитированием
Старый 16.01.2016, 11:43   #3
Tiphon
Новичок
Джуниор
 
Регистрация: 15.01.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
А файл будет?

Код:
    while (getline(inOut, s)) //Прочитали String5{
           //...
           mark = inOut.tellg();//Что теперь вернет tellg?
           //...
    }
Может у него в конце файла перенос строки?
А какая собственно разница что вернет последний. Можно просто прочитать первую строку и посмотреть что вернет tellg, он вернет 12. Не знаю чем тебе файл поможет, но вот http://rghost.ru/7pYlRNgj5
Tiphon вне форума Ответить с цитированием
Старый 16.01.2016, 12:08   #4
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Думаю, проблема в том, что Вы используете форматированный ввод (getline) и при этом пытаетесь достучаться до буфера, который ни о каком форматировании не слышал никогда.

пример работы кода для Вашего файла:
Снимок-15.png
Croessmah вне форума Ответить с цитированием
Старый 16.01.2016, 16:16   #5
Tiphon
Новичок
Джуниор
 
Регистрация: 15.01.2016
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Думаю, проблема в том, что Вы используете форматированный ввод (getline) и при этом пытаетесь достучаться до буфера, который ни о каком форматировании не слышал никогда.

пример работы кода для Вашего файла:
Вложение 79193
симс легит. Но почему у остальных по другому работает? Типа стандарт не определяет как оно должно работать с форматированным вводом/выводом, поэтому всё это остаётся на усмотрение разработчика компилятора? И поэтому вполне возможна дисинхронизация между маркером и читаемой строкой
Tiphon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Clang и стандартная библиотека в Windows Sushev Общие вопросы C/C++ 2 11.01.2015 11:39
Не подключается стандартная библиотека. LexaniT Visual C++ 4 24.07.2012 19:30
Стандартная математическая библиотека в Visual C++ 2010 Alingar Visual C++ 5 30.10.2011 17:18
Стандартная библиотека С++ Mike92 Общие вопросы C/C++ 4 04.06.2011 12:14
Стандартная библиотека... Sota Общие вопросы C/C++ 3 17.07.2007 19:18