![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Compositum |
|
||||||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Доброго времени суток.
Изучаю C++, разбираюсь с потоками... Имеется исходный текстовый файл input.txt со следующим содержимым:
Я хочу перенаправить поток ввода на файл input.txt, а поток вывода - в output.txt, после чего прочитать всё, что поступает во входной поток.
Однако в файле output.txt я получаю не то, что ожидал. Получаю такое:
В чём ошибка? Это сообщение отредактировал(а) Compositum - 4.1.2013, 17:59 |
||||||
|
|||||||
NoviceF |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Как-то всё очень замудрено.. сейчас найду попроще код на тему.
В общем код на тему, на сколько соответствует заданию не буду вникать, но мне кажется должен дать пищу для размышлений:
Это сообщение отредактировал(а) NoviceF - 4.1.2013, 17:07 |
|||
|
||||
Compositum |
|
||||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
На мой взгляд там всё понятно. За основу я взял код отсюда.
Он не помогает понять причину проблемы. |
||||
|
|||||
Compositum |
|
||||||
![]() Senior developer ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 430 Регистрация: 6.1.2008 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Если я содержимое файла input.txt заменю на такое:
и в цикле внесу такие изменения:
То всё работает как надо:
Хотелось бы понять, почему с числами не работает... |
||||||
|
|||||||
NoviceF |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
К сожалению, сейчас нет IDE под рукой, а при помощи stringstream на http://liveworkspace.org организовать правдоподобно вывод в файл не получается, в поток то данные сохраняются и цифрами и стрингами, а вот в файл, на основе которого создаётся stringstream ничего не сохраняется.. Так что если и смогу проверить что-нибудь в "полевых условиях" - не раньше часов 2х ночи :(
|
|||
|
||||
NoviceF |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Внезапно, но, вот вход
вот выход:
так что с кодом всё в порядке.. |
||||
|
|||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 16 Всего: 85 |
Ошибка в том, что поток надо проверять не до ввода, а после ввода. (очень частая ошибка.) В вашем случае std::cin >> x; не смог прочитать из файла, и x осталась без изменений. на следующей итерации, цикл завершился, так как while(std::cin) дал false. В вот почему не смог прочитать из файла, может быть сотни причин. смотрите у себя... |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |