Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TempuSFatumA
1 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 94
Завершенные тесты: 1
#1

Криво читается бинарник - C++

08.10.2013, 16:34. Просмотров 226. Ответов 4
Метки нет (Все метки)

Здравия желаю!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
using namespace std;
 
void main()
{
    char l=6,c=3,b;
    fstream a("LOL.txt",ios::out|ios::binary|ios::trunc);
    a.write(&l,sizeof(l));
    a.close();
 
    a.open("LOL.txt",ios::out|ios::binary|ios::ate);
    a.write(&c,sizeof(l));
    a.close();
 
    a.open("LOL.txt",ios::binary|ios::in);
    cout<<f.tellg()<<"   "<<a.rdbuf()->in_avail();
    a.read(&b,sizeof(l));
    a.close();
}
Собственно, не могу понять, почему при чтении в b записывается 3, а не 6.
seekg() говорит, что указатель на 0 элементе стоит.
Что еще не понятно: in_avail() также возвращает 0.
То есть и считать он не может ничего, а в b пишется последнее записанное.
Может я не правильно понял работу функций open/close...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 16:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Криво читается бинарник (C++):

Неправильно записывается бинарник - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;iomanip&gt; #include &lt;fstream&gt; #include &lt;stdlib.h&gt; using namespace std; class...

GCC 4.7 компилируется, но не запускается бинарник - C++
Где облажался? int main() { int a = {5,}; int b = {7,}; int sum=0; for(int i = 1; i &lt; 200; i++)

Как побайтно считать бинарник? - C++
Как побайтно считать бинарник? Именно в переменную тип char.

Запись в бинарник и его чтение - C++
Привет всем, задача состоит в том, что нужно записать в бинарник сведения о сканерах и считать их из него. Проблема в том что нужно в...

Запись структуры с строкой в бинарник - C++
Здравствуйте, уважаемые форумчане! Интересовал вопрос записи структуры, в который есть string, в бинарный файл. Нашел на форуме код и...

Где скачать бинарник haartraining для opencv - C++
Где скачать бинарник haartraining для opencv ?

4
Croessmah
Эксперт CЭксперт С++
13425 / 7579 / 856
Регистрация: 27.09.2012
Сообщений: 18,668
Записей в блоге: 3
Завершенные тесты: 1
08.10.2013, 16:48 #2
C++
1
a.open("LOL.txt",ios::out|ios::binary|ios::app);
а если второй раз открыть так?
0
TempuSFatumA
1 / 1 / 0
Регистрация: 02.04.2013
Сообщений: 94
Завершенные тесты: 1
08.10.2013, 16:50  [ТС] #3
Спасибо, это убрало ошибку с b.

Но in_avail() всё равно вернуло 0... Почему же? Оно же вроде кол-во байт оставшихся возвращает.
0
Croessmah
Эксперт CЭксперт С++
13425 / 7579 / 856
Регистрация: 27.09.2012
Сообщений: 18,668
Записей в блоге: 3
Завершенные тесты: 1
08.10.2013, 17:09 #4
Попробуйте вызвать
C++
1
std::ios::sync_with_stdio(false);
в начале main
хотя...
0
Croessmah
Эксперт CЭксперт С++
13425 / 7579 / 856
Регистрация: 27.09.2012
Сообщений: 18,668
Записей в блоге: 3
Завершенные тесты: 1
08.10.2013, 17:29 #5
http://stackoverflow.com/questions/9...ome-set-eofbit
in_avail() returns the number of chars it can see in the internal buffer, if any. Otherwise it calls showmanyc() to try to detect if chars are known to be available elsewhere, so a buffer fill request is guaranteed to succeed.

In turn, showmanyc() will return the number of chars it knows about, if any, or -1 if it knows that a read will fail, or 0 if it doesn't have a clue.
Криво читается бинарник
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2013, 17:29
Привет! Вот еще темы с ответами:

Прочитать бинарник картинки через std::cin - C++
Здравствуйте дорогие форумчане! У меня возникла такая не тривиальная задача, вот собственно в чем фишка: Нужно написать на С++...

Как компилировать программу C++ или код в бинарник (что бы запускался без участия ОС) - C++
Помогите пожалуйста как компилировать прогу написанную на с++ или код в бинарник (что бы запускался без участия ОС) И сразу второй вопрос...

Не читается символ 'e' - C++
Вторая проверка просто игнорируется: float i; char c; std::cin &gt;&gt; i &gt;&gt; c; if (c == '$') { i /= 30; } else if (c...

Не правильно читается файл - C++
Здравствуйте! Подскажите, пожалуйста, из-за чего у меня не правильно читается файл и как это исправить. void GenerateCSVTable() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
08.10.2013, 17:29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru