| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Открытие файла на чтение функция fopen |
| Автор: bigturtle 27.1.2009, 21:45 | ||
| Здравствуйте, задача нужно создать файл и записать в него поочередно кусок из одного файла(ну допустим слово) кусок из другого файла, потом опять кусок из первого файла кусок из второго и сново тоже самое. Получается, что это часть подпрограммы то есть организуется с помошью отдельных функций. Одна функция отвечает за открытие одного файла, другая за открытие другого. Вопрос как нужно реализовать, что бы при первом вызове функции, программа понимала, что файл нужно открыть, а при втором продолжала чтение из это го же файла. После чего если файл прочтется до конца, но функция закончится, то при повторном открытии, функция поняла, что файл хоть и открыт, но закончен по этому нужно повторно открыть. Вот примерный кусок коды.
Получается, что при вызове функция будет считывать одно и тоже слово. а нужно, что бы продолжало читать дальше. Спасибо. |
| Автор: destrd 27.1.2009, 21:59 |
| передавайте ей открытый файл как параметр, как вариант. |
| Автор: bigturtle 27.1.2009, 22:04 | ||
В смысле? есть еще такойвриант
|
| Автор: math64 28.1.2009, 09:44 | ||
Так нельзя. после объявления FILE *a_txt; содержит неопределённое значение, пиши FILE *a_txt = NULL;
|
| Автор: bigturtle 28.1.2009, 11:15 |
| Не знаю компилятор обрабатывает, и все работает только при больших количества переписывания файла вылетает Error File 1.txt\n. В вашем варианте тоже при вызове функции файл будет заново открываться, а мне нужно, что бы он читался если уже открыт. |
| Автор: math64 28.1.2009, 12:04 |
| В приведённом коде файл открывается заново, когда дошли до конца, а что нужно? |
| Автор: math64 28.1.2009, 13:06 | ||
|
| Автор: inside_pointer 29.1.2009, 01:16 | ||
|
| Автор: bigturtle 29.1.2009, 18:26 | ||
Вот остановился на врианте
Почему то работает. ув inside_pointer, а что *ifp = NULL то ifp чему равно тоже NULL? |
| Автор: inside_pointer 29.1.2009, 22:26 | ||
ну да вроде, т.к. она статическая то её значение после инициализации сохраняется таким, каким оно осталось после работы функции, функция вернёт NULL когда не сможет файл открыть на чтение, закрытие файлов в данном случае происходит само на main'овском return'е, но его можно встроить в функцию или разделить их одно в функцию другое наружу |
| Автор: math64 30.1.2009, 10:02 | ||
Ты испльзуешь C или C++? если C, using std; не нужен, если C++ почему в остальном не пользоваться возможностями C++?
|
| Автор: bigturtle 30.1.2009, 13:06 |
| я использую с, на eclipse видно просто не вычистил вверх. |
| Автор: bigturtle 5.2.2009, 12:37 |
| Спасибо всем |