![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| bigturtle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 27.1.2009 Репутация: нет Всего: нет |
Здравствуйте, задача нужно создать файл и записать в него поочередно кусок из одного файла(ну допустим слово) кусок из другого файла, потом опять кусок из первого файла кусок из второго и сново тоже самое. Получается, что это часть подпрограммы то есть организуется с помошью отдельных функций. Одна функция отвечает за открытие одного файла, другая за открытие другого. Вопрос как нужно реализовать, что бы при первом вызове функции, программа понимала, что файл нужно открыть, а при втором продолжала чтение из это го же файла. После чего если файл прочтется до конца, но функция закончится, то при повторном открытии, функция поняла, что файл хоть и открыт, но закончен по этому нужно повторно открыть.
Вот примерный кусок коды.
Получается, что при вызове функция будет считывать одно и тоже слово. а нужно, что бы продолжало читать дальше. Спасибо. Это сообщение отредактировал(а) bigturtle - 27.1.2009, 21:47 |
|||
|
||||
| destrd |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 1.10.2008 Репутация: нет Всего: 4 |
передавайте ей открытый файл как параметр, как вариант.
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems. -- Jamie Zawinski in comp.lang.emacs |
|||
|
||||
| bigturtle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 27.1.2009 Репутация: нет Всего: нет |
В смысле? есть еще такойвриант
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Так нельзя. после объявления FILE *a_txt; содержит неопределённое значение, пиши FILE *a_txt = NULL;
|
|||
|
||||
| bigturtle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 27.1.2009 Репутация: нет Всего: нет |
Не знаю компилятор обрабатывает, и все работает только при больших количества переписывания файла вылетает Error File 1.txt\n.
В вашем варианте тоже при вызове функции файл будет заново открываться, а мне нужно, что бы он читался если уже открыт. |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
В приведённом коде файл открывается заново, когда дошли до конца, а что нужно?
Это сообщение отредактировал(а) math64 - 28.1.2009, 12:09 |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
|
|||
|
||||
| inside_pointer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
|
|||
|
||||
| bigturtle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 27.1.2009 Репутация: нет Всего: нет |
Вот остановился на врианте
Почему то работает. ув inside_pointer, а что *ifp = NULL то ifp чему равно тоже NULL? Это сообщение отредактировал(а) bigturtle - 29.1.2009, 18:27 |
|||
|
||||
| inside_pointer |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
ну да вроде, т.к. она статическая то её значение после инициализации сохраняется таким, каким оно осталось после работы функции, функция вернёт NULL когда не сможет файл открыть на чтение, закрытие файлов в данном случае происходит само на main'овском return'е, но его можно встроить в функцию или разделить их одно в функцию другое наружу |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Ты испльзуешь C или C++? если C, using std; не нужен, если C++ почему в остальном не пользоваться возможностями C++?
|
|||
|
||||
| bigturtle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 27.1.2009 Репутация: нет Всего: нет |
я использую с, на eclipse видно просто не вычистил вверх.
|
|||
|
||||
| bigturtle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 27.1.2009 Репутация: нет Всего: нет |
Спасибо всем
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |