Форум программистов, компьютерный форум CyberForum.ru

Маленький вопрос по работе с файлами - C++

Восстановить пароль Регистрация
 
Alexanches
85 / 6 / 1
Регистрация: 04.06.2010
Сообщений: 80
26.01.2011, 23:38     Маленький вопрос по работе с файлами #1
очень глупый к тому же)
есть
C++
1
2
FILE * f=fopen(filename,"r");
FILE* F;
как мне присвоить*F=*f? заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2011, 23:38     Маленький вопрос по работе с файлами
Посмотрите здесь:

Проблемы при работе с файлами C++
C++ Вопрос по работе с массивами
C++ Подскажите по работе с файлами
C++ Вопрос по работе с файлами
C++ Совет по работе с файлами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.01.2011, 23:58     Маленький вопрос по работе с файлами #2
Цитата Сообщение от Alexanches Посмотреть сообщение
как мне присвоить*F=*f? заранее спасибо)
В смысле, как сам файл в другой скопировать? Временный файл создать? Назначение этой манипуляции объясните, пожалуйста. А пока вот на всякий случай почитайте...
Alexanches
85 / 6 / 1
Регистрация: 04.06.2010
Сообщений: 80
27.01.2011, 00:00  [ТС]     Маленький вопрос по работе с файлами #3
нужно создать копию для работы с ней)
Iron Bug
22 / 22 / 0
Регистрация: 06.12.2010
Сообщений: 125
27.01.2011, 00:05     Маленький вопрос по работе с файлами #4
а зачем копировать эту структуру?
проблема в том, что файл - это поток. и структура отражает состояние указателей в этом потоке. что тебе даст копирование структур?

Добавлено через 3 минуты
Цитата Сообщение от Alexanches Посмотреть сообщение
нужно создать копию для работы с ней)
довольно странная задумка. можно просто скопировать указатель. хотя всё равно неясно, зачем.
Alexanches
85 / 6 / 1
Регистрация: 04.06.2010
Сообщений: 80
27.01.2011, 00:09  [ТС]     Маленький вопрос по работе с файлами #5
в общем ладно)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 {
                 System::String^ str;
                 this->openFileDialog1->ShowDialog();
                 str=this->openFileDialog1->FileName;
                 char b[256];
                 MyConvert::copyto(b,str,255);
                 FILE* f=fopen(b,"r");
                 while(!feof(f))
                 {
                    _current=(_current->input(f));
                    t->insert(_current);            
                 }
                 t->output(listView1);
                 fclose(f);
             }
цикл проходит лишний оборот) в инпуте вызываю fgets..нужно чтобы он останавливался а оборот раньше чем сейчас)

Добавлено через 1 минуту
Цитата Сообщение от Iron Bug Посмотреть сообщение
а зачем копировать эту структуру?
проблема в том, что файл - это поток. и структура отражает состояние указателей в этом потоке. что тебе даст копирование структур?

Добавлено через 3 минуты


довольно странная задумка. можно просто скопировать указатель. хотя всё равно неясно, зачем.
как бы изменяя 1 файл будет меняться и другой- указатель-то 1..
Iron Bug
22 / 22 / 0
Регистрация: 06.12.2010
Сообщений: 125
27.01.2011, 00:17     Маленький вопрос по работе с файлами #6
fseek(), fgetpos(), fsetpos()
ну и вообще в stdio.h много прочих полезных функций.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.01.2011, 06:08     Маленький вопрос по работе с файлами #7
Цитата Сообщение от Alexanches
цикл проходит лишний оборот)
C++
1
while(!feof(f))
неправильная конструкция, даже когда нормально работает
в ней неявная ошибка, которая может всплыть спустя некоторое время

представь, что у тебя чтение файла происходит с флешки, и однажды на неё пролили воду, и никто об этом не знает
файл может открыться даже, и даже читаться, но дойти до повреждённого участка и что потом ?
и потом эта штука, вместо того, чтобы сообщить, что чтение невозможно, просто повиснет, потому что будет ожидать конец файла, который никогда не наступит

Цитата Сообщение от Alexanches
нужно создать копию для работы с ней)
ты делаешь функции и просто передаёшь в них адрес этой структуры
сейчас он в f, его также можно поместить в F через F = f, но помни, что файл можно закрывать только один раз
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2011, 23:37     Маленький вопрос по работе с файлами
Еще ссылки по теме:

C++ [C++][классы] маленький вопрос.
C++ Вопрос по работе с файлами в Visual Studio
C++ Дополнение к работе с файлами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
27.01.2011, 23:37     Маленький вопрос по работе с файлами #8
Цитата Сообщение от Alexanches Посмотреть сообщение
нужно создать копию для работы с ней)
если "с ней" в смысле - с копией файла, которая по завершении программы должна удаляться, то вот например: man tmpfile - копируете в него свой файл, и работаете с ним, как с обычным файлом... Если файлы в принципе не большие, то ещё лучше их целиком в память как массив байтов копировать и с ним работать...
Yandex
Объявления
27.01.2011, 23:37     Маленький вопрос по работе с файлами
Ответ Создать тему
Опции темы

Текущее время: 23:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru