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

Передача файла в качестве параметра - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.61
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2010, 22:26     Передача файла в качестве параметра #1
Как, в качестве параметра, передать функции файл и структуру???

Добавлено через 1 час 1 минуту
Разве никто не знает???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.03.2010, 22:29     Передача файла в качестве параметра #2
Без проблем
C++
1
void func (char*,  char*) {}
Усё. Теперь , когда будешь вызывать функцию func, передавай ей в качестве параметров укзатель на стоку- имя файла и указательно строку имя переменной типа такая-то структура.
Привет.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2010, 22:37  [ТС]     Передача файла в качестве параметра #3
Можете пример привести.
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
11.03.2010, 22:38     Передача файла в качестве параметра #4
нужно что-то типа такого?
C
1
2
3
4
5
6
7
8
9
typedef struct mystruct {
.....
} STRUCT ;
 
........
 
void func (FILE *f,SRTUCT name_struct){
....
}
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
11.03.2010, 22:39     Передача файла в качестве параметра #5
MILAN, Можно и так:
C
1
2
3
4
5
6
7
8
9
10
11
fun(FILE *f, MYSTRUCT *p)
{
  ....
}
main()
{ MYSTRUCT s; FILE *F;
   ...
   F = fopen(name, "r");
   ...
   fun(F, &s);
}
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.03.2010, 22:46     Передача файла в качестве параметра #6
Цитата Сообщение от MILAN Посмотреть сообщение
Можете пример привести.
Да без проблем, брат
C++
1
2
3
4
5
6
7
#include <stdio.h>
#include "fail_1.cpp"
void func (char*,  char*) {};
int main(){
  func ("ima_faila", "ima_strukt");
  return 0;
}
Кстати. Вопрос, ЧТО ИМЕННО будет делать функция со своими параметрами- не задавался....
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2010, 22:52  [ТС]     Передача файла в качестве параметра #7
Цитата Сообщение от Day Посмотреть сообщение
MILAN, Можно и так:
Код
fun(FILE *f, MYSTRUCT *p)
{
  ....
}
main()
{ MYSTRUCT s; FILE *F;
   ...
   F = fopen(name, "r");
   ...
   fun(F, &s);
}
А как паредать масив структур?
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
11.03.2010, 22:57     Передача файла в качестве параметра #8
Очень просто.
Для начала запомни. Никаких массивов не передаётся никуда.
Передаются АДРЕСА на эти массивы

ТО есть ты объявляешь структуру.
Птом объявляешь массив из таких вот структур.
Потом берёшь адрес этого массива и передаёшь его ы функцию

Всё! Пиши давай!
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
11.03.2010, 23:00     Передача файла в качестве параметра #9
Тогда так
Код
fun2(FILE *f, MYSTRUCT *p, int n)
{
  ....
}
main()
{ MYSTRUCT ss[10]; FILE *F;
   ...
   F = fopen(name, "r");
   ...
   fun2(F, ss, 10);
}
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2010, 23:05  [ТС]     Передача файла в качестве параметра #10
Так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <string>
# define kil 5
 struct cars
{
    std::string marka;
    std::string year;
    std::string color;
    std::string number;
}; //car[kil],*pcar=&car[0],*pc=&car[kil];
void WriteFile(FILE *pfile, cars *p, int n);
FILE *pfile;
car s;
int main()
    
{   cars a[kil];
    WriteFile(pfile,a,kil);
    return 0;
}
void WriteFile(FILE *pfile, cars *p, int n)
{   
    pfile= fopen("d:\\infocar0.txt","w");
    fscanf(pfile,"%s",car[1].color);
    fclose(pfile);
}
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
11.03.2010, 23:12     Передача файла в качестве параметра #11
MILAN, похоже на правду не считая пары описок, но это ерунда - компилятор поправит!
Только некчему pfile в WriteFile передавать. Он - ее собственная переменная (в твоем коде)
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2010, 23:26  [ТС]     Передача файла в качестве параметра #12
day, подскажите как в файл записать елементи масива структур, функция fscanf чето невиходит. Делаю так:

C
1
fscanf(pfile,"%s",a[1].color);
Програма запускается, и сразу закрывается.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
12.03.2010, 00:57     Передача файла в качестве параметра #13
Цитата Сообщение от MILAN Посмотреть сообщение
C
1
2
3
4
5
6
void WriteFile(FILE *pfile, cars *p, int n)
{
    pfile= fopen("d:\\infocar0.txt","w");
    fscanf(pfile,"%s",car[1].color);
    fclose(pfile);
}
Я плохо знаю С, но что то мне кается вы напутали. Вы открываете файл для записи, а потом пытаетесь фсканфом что-то считать оттуда. Вот исправленное
C
1
2
3
4
5
6
void WriteFile(FILE *pfile, cars *p, int n)
{
    pfile= fopen("d:\\infocar0.txt","w");
    fprintf(pfile,"%s",car[1].color);
    fclose(pfile);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2010, 01:42     Передача файла в качестве параметра
Еще ссылки по теме:

Передача указателя в качестве параметра функции динамически подключаемой библиотеки .so C++
C++ Передача члена класса в качестве параметра метода
Передача класса в качестве параметра шаблона C++

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.03.2010, 01:42     Передача файла в качестве параметра #14
Мало того! Как-то по-моему не правильно в функции файл закрывать. Либо передавать в функцию указатель на открытый файл, функция с ним сделает, что должна, и оставит открытым. А в вызывающей функции ( в той, в которой собственно файл открывался ), его и закрывать. Либо передавать в функцию строкой имя файла, а уж она сама его откроет, сделает, что нужно, закроет и результат своей работы вернёт ( обычно 0 = удачно )...
Yandex
Объявления
12.03.2010, 01:42     Передача файла в качестве параметра
Ответ Создать тему
Опции темы

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