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

C++

Войти
Регистрация
Восстановить пароль
 
Eugeniy
3119 / 1312 / 141
Регистрация: 19.12.2009
Сообщений: 1,808
#1

Файлы в процедурах - C++

26.12.2009, 16:25. Просмотров 567. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, как правильно реализовать эту процедуру.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
robota(FILE fp; FILE fa)
{
 student s;
 fa=fopen("form1.dat","r+b");
 
do
    {
       fread(&s, sizeof(s), 1, fa);
       if (!feof(fa)) fwrite(&s, sizeof(s), 1, fp);
    } while (!feof(fa));
 
           fclose(fa);
}
При вызове в теле програмы robota(&fp,&fa). Мне выдает сообщение об ошибке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 16:25     Файлы в процедурах
Посмотрите здесь:

Файлы C++
C++ Файлы
C++ Файлы
файлы C++
C++ Файлы
файлы C++
Visual C++ Файлы
файлы C++ Builder
Файлы C++
Как объявить динамический массив, чтобы он был виден во всех процедурах программы? C++
Сервер получает файлы от клиента, склеивает все полученные файлы в один большой. Протокол взаимодействия UDP C++
Значение переменной в двух процедурах C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
26.12.2009, 22:35     Файлы в процедурах #2
При вызове в теле програмы robota(&fp,&fa). Мне выдает сообщение об ошибке.
а не надо по ссылке передавать аргументы, которые следет передвать по значению, как в функции определено. надо robota(fp,fa), сам бы попробовал - поэксперементировал. Или можешь функцию переписать что бы было
C++
1
robota(FILE *fp; FILE *fa){/*реализация*/}
тогда можно буедт по ссылке передавать robota(&fp,&fa)
Eugeniy
3119 / 1312 / 141
Регистрация: 19.12.2009
Сообщений: 1,808
26.12.2009, 22:58  [ТС]     Файлы в процедурах #3
Я пробовал так и так. Все равно выдает Declaration syntax error и требует поставить скобку после fp.

Добавлено через 13 минут
Сама програма роботает правильно. Просто хотел упростить алгоритм с помощью этой процедуры.
На 200% проблема в ней.
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.12.2009, 01:26     Файлы в процедурах #4
void rabota(FILE* fa, FILE* fb)
Вызов будет выглядеть так rabota(fa, fb);.
Eugeniy
3119 / 1312 / 141
Регистрация: 19.12.2009
Сообщений: 1,808
27.12.2009, 02:26  [ТС]     Файлы в процедурах #5
Огромное спасибо! А вы не могли бы мне сказать, почему здесь надо ставить именно оператор void? И почему при вызове процедуры не надо использовать "&"?
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
27.12.2009, 03:19     Файлы в процедурах #6
Цитата Сообщение от Eugeniy Посмотреть сообщение
почему здесь надо ставить именно оператор void?
это не оператор, а то что функция! должна вернуть..

Цитата Сообщение от Eugeniy Посмотреть сообщение
И почему при вызове процедуры не надо использовать "&"?
это смотря как опишешь функцию..
Yandex
Объявления
27.12.2009, 03:19     Файлы в процедурах
Ответ Создать тему
Опции темы

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