Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alexanches
86 / 7 / 1
Регистрация: 04.06.2010
Сообщений: 80
#1

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

26.01.2011, 23:38. Просмотров 510. Ответов 7
Метки нет (Все метки)

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

Вопрос по работе с файлами - C++
Пока i-=2 не вставил, выводила пустую строку в результате. Почему так? Что за 2 знака перед eof() мешали? int main(int argc, char*...

Вопрос по работе с файлами в Visual Studio - C++
Написал программу для работы с файлом в Visual Studio. Iostream подключил. Но такие вот привычные записи, как, например, ifstream...

Работа с файлами (найти маленький косяк) - C++
Помогите найти косяк в программе. Нужно считать слов с одного файла и перезаписать их в обратном порядке в другой файл. Считывание файла я...

Вопрос по работе с массивами - C++
Уважаемые! Пишу программу на Си разбиения текста на страницы, возник вопрос как в двумерный массив после каждой десятой строки вставить...

Подскажите по работе с файлами - C++
struct MyStruct { char * Nam; unsigned int Salary; }; MyStruct emp; *emp.Nam="Ivan Ivanov"; emp.Salary=109000; ...

Совет по работе с файлами - C++
надо написать программу, которая считывает данные из текстового файла в структуру с 4-мя полями, типа однонаправленный список, а потом...

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

Добавлено через 3 минуты
Цитата Сообщение от Alexanches Посмотреть сообщение
нужно создать копию для работы с ней)
довольно странная задумка. можно просто скопировать указатель. хотя всё равно неясно, зачем.
1
Alexanches
86 / 7 / 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..
0
Iron Bug
22 / 22 / 0
Регистрация: 06.12.2010
Сообщений: 125
27.01.2011, 00:17 #6
fseek(), fgetpos(), fsetpos()
ну и вообще в stdio.h много прочих полезных функций.
1
accept
4832 / 3253 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
27.01.2011, 06:08 #7
Цитата Сообщение от Alexanches
цикл проходит лишний оборот)
C++
1
while(!feof(f))
неправильная конструкция, даже когда нормально работает
в ней неявная ошибка, которая может всплыть спустя некоторое время

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

Цитата Сообщение от Alexanches
нужно создать копию для работы с ней)
ты делаешь функции и просто передаёшь в них адрес этой структуры
сейчас он в f, его также можно поместить в F через F = f, но помни, что файл можно закрывать только один раз
1
easybudda
Модератор
Эксперт CЭксперт С++
10020 / 5943 / 1004
Регистрация: 25.07.2009
Сообщений: 11,230
27.01.2011, 23:37 #8
Цитата Сообщение от Alexanches Посмотреть сообщение
нужно создать копию для работы с ней)
если "с ней" в смысле - с копией файла, которая по завершении программы должна удаляться, то вот например: man tmpfile - копируете в него свой файл, и работаете с ним, как с обычным файлом... Если файлы в принципе не большие, то ещё лучше их целиком в память как массив байтов копировать и с ним работать...
0
27.01.2011, 23:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2011, 23:37
Привет! Вот еще темы с ответами:

Дополнение к работе с файлами - C++
Здравствуйте, ситуация довольно глупая, но умудрились почти поссориться с товарищем из группы. Вот кусок кода #include <iostream> ...

Ошибка при работе с файлами - C++
Всем привет! Подккажите, плиз, что у меня неправильно в коде: #include <cstdlib> #include <stdio.h> #include <stdlib.h> #include...

Ошибка при работе с файлами - C++
Необходимо, создать текстовый файл со случайным именем в диапазоне 8 символов, латиница. Вот код: int main() { ...

программа по работе с текстовыми файлами - C++
Необходимо написать программу,которая считывает текст из файла и выводит его на экран,меняя местами каждые 2 соседних слова. часть...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru