![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Lazarus Long |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.1.2007 Репутация: нет Всего: нет |
Доброго времени суток!
проблема весьма мелочна, но хотелось бы понять в чем ошибка. программа, которую я написал весьма нелепо, но просто кодирует (используя шифрование Цезаря) символы входящего файла и создает файл с уже закодированными символами . в процессе работы программы выводятся оповещающие сообщения, но вот последнее сообщение не выводится. прошу помочь разобраться!
Заранее благодарен! |
|||
|
||||
A5uKa |
|
|||
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 2 Всего: 16 |
![]() А первое Getch ты как бы уже нажал ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Lazarus Long, перед строкой 48 поставь fflush(stdout). А на будущее, не используй без крайней необходимости работу с потоками С++ и сишные функции из stdio.h. В противном случае, нужно их синхронизировать (см. std::ios_base::sync_with_stdio).
|
|||
|
||||
Lazarus Long |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.1.2007 Репутация: нет Всего: нет |
Спасибо, за проявленный интерес к моей проблеме, но советы не помогли =(
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Lazarus Long
Ты подменяешь stdout в 41-ой строке, весь вывод пойдет в файл, но перед началом следующего вывода ты закрываешь файл. Добавлено через 54 секунды Где вы эти извращенства вычитываете? Уж не на лекциях ли? |
|||
|
||||
Lazarus Long |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.1.2007 Репутация: нет Всего: нет |
2azesmcar
Этот код, как мозаика, складывался(ется) из всевозможных примеров. Я понял, что какого-то лешего поток, через который происходит запись в файл, не закрывается. Но никак не могу идентифицировать этого мифического героя. По своей сути fclose() должен был остановить работу потоков с файлами и вернуть все на прежние места, но этого не происходит.... |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
Lazarus Long |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.1.2007 Репутация: нет Всего: нет |
Fclose закрывает файл, ассоциированный с fp. Буфер вывода, связанный с fp, перед закрытием выталкивается.
Помогите пожалуйста конструктивной критикой или советами. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
||||
|
||||
Lazarus Long |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.1.2007 Репутация: нет Всего: нет |
2azesmcar
Понял, что Вы имеете в виду, но даже если удалить все fclose(), последнее сообщение так же не выводится. *STUPID* |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Вы не читаете то, что я пишу или читаете через строку? уберите вообще этот reopen, зачем он там нужен? Используйте вместо printf(...) fprintf(file, ...) |
|||
|
||||
Lazarus Long |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 5.1.2007 Репутация: нет Всего: нет |
2azesmcar
Спасибо, что напомнили про fprintf(file, ...), совсем выпало из головы. Вот, что в конце-концов получилось:
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Lazarus Long, ты объясни, зачем ты используешь ввод/вывод из разных библиотек по сути одновременно? Ты используй или iostream/fstream или stdio.h. Зачем кашу делать?!?
|
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
можно я отвечу ![]()
|
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
azesmcar, мне не ответ нужен. Мне нужно понимание Lazarus Long того, что делается что-то неправильно.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |