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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.61
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
#1

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

11.03.2010, 22:26. Просмотров 6381. Ответов 13
Метки нет (Все метки)

Как, в качестве параметра, передать функции файл и структуру???

Добавлено через 1 час 1 минуту
Разве никто не знает???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2010, 22:26     Передача файла в качестве параметра
Посмотрите здесь:
Передача файла в функцию в качестве параметра C++
C++ Передача файла в функцию в качестве параметра
Функции, передача массива в качестве параметра C++
Передача массива в функцию в качестве параметра C++
Передача класса в качестве параметра шаблона C++
C++ Передача CString в качестве параметра функции
C++ Передача члена класса в качестве параметра метода
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
11.03.2010, 22:29     Передача файла в качестве параметра #2
Без проблем
C++
1
void func (char*,  char*) {}
Усё. Теперь , когда будешь вызывать функцию func, передавай ей в качестве параметров укзатель на стоку- имя файла и указательно строку имя переменной типа такая-то структура.
Привет.
MILAN
885 / 779 / 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
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
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
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
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
885 / 779 / 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
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
11.03.2010, 22:57     Передача файла в качестве параметра #8
Очень просто.
Для начала запомни. Никаких массивов не передаётся никуда.
Передаются АДРЕСА на эти массивы

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

Всё! Пиши давай!
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
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
885 / 779 / 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
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
11.03.2010, 23:12     Передача файла в качестве параметра #11
MILAN, похоже на правду не считая пары описок, но это ерунда - компилятор поправит!
Только некчему pfile в WriteFile передавать. Он - ее собственная переменная (в твоем коде)
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2010, 23:26  [ТС]     Передача файла в качестве параметра #12
day, подскажите как в файл записать елементи масива структур, функция fscanf чето невиходит. Делаю так:

C
1
fscanf(pfile,"%s",a[1].color);
Програма запускается, и сразу закрывается.
M128K145
Эксперт С++
8284 / 3503 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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     Передача файла в качестве параметра
Еще ссылки по теме:
Передача функции с двумерным массивов в качестве параметра C++
Передача двумерного динамического массива в функцию в качестве параметра C++
Передача указателя в качестве параметра функции динамически подключаемой библиотеки .so C++
Передача двумерного массива указателей на char в качестве параметра функции C++
C++ [C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc()

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

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

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