Здравствуйте , возникло несколько глупых вопросов по этой теме :
В общем есть 2 простые функции:
1) записывает 10 рандомных чисел в файл :
2) считывает их на консоль




Есть 1 проблема : поcледнее число при выводе на консоль
дублируется(что скорее всего из-за того , что последний
символ записанного файла - это перевод строки который
считывается в x)
Можно ли как-то этого избежать ?

И проблема 2 :




Последние 2 строчки : непонятно почему указатель
не переходит на начало файла ( i2.eof() == 0 )
Заранее спасибо

@темы: C++

Комментарии
18.05.2011 в 02:55

На свете есть всего 10 разновидностей людей. Те, которые понимают бинарный код, и те, кто не понимают
А что, обязательно должен переходить? Переведите ручками и не парьтесь :)
18.05.2011 в 03:00

alba-longa пробовал через seekg - тоже не пашет почему-то
18.05.2011 в 03:13

На свете есть всего 10 разновидностей людей. Те, которые понимают бинарный код, и те, кто не понимают
Есть 1 проблема : поледнее число при выводе на консоль дублируется(что скорее всего из-за того , что последний символ записанного файла - это перевод строки который считывается в x) Можно ли как-то этого избежать ?
Можно попробовать изменить строчку так if (!i.eof()) cout << x << endl; вроде как иногда помогает.

И выложите нормальный вариант кода, тут даже тег специально обученный есть [CODE ]убрать пробелы[ /CODE].
18.05.2011 в 03:35

На свете есть всего 10 разновидностей людей. Те, которые понимают бинарный код, и те, кто не понимают
Оно говорит, что в 3-14 был коммент, но я его почему-то не вижу.
Вариант насчет 2
18.05.2011 в 03:39

Спасибо , на том сайте я был , там как раз писали :
"Seekg работает, если ты открываешь файл в двоичном формате (ios::bin), если тебе надо перевести курсор на начало файла, то закрой и открой файл заново."
18.05.2011 в 03:41

На свете есть всего 10 разновидностей людей. Те, которые понимают бинарный код, и те, кто не понимают
nvse
ну да, seekg использовать не надо, все и так должно работать. Необъяснимый глюк (компилятора)?
Если очень надо, чтобы вотпрямщаз заработало, заведите новый поток. Кстати, а их пример правильно работает у Вас?
18.05.2011 в 03:47

alba-longa пробовал , заводил новый поток) , та же ошибка . Ну ладно , спасибо ещё раз , я пожалуй спать пойду
18.05.2011 в 03:49

На свете есть всего 10 разновидностей людей. Те, которые понимают бинарный код, и те, кто не понимают
nvse ну попробуйте пример с форума запустить, если не пойдет, точно проблема с компилятором. Я тоже спать) утро вечера мудренее =)
18.05.2011 в 16:22

C 1-ым вопросом всё легко,разобрался .Но вот 2-ой всё также .Никак указатель на начало не хочет переходить.