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

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

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

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

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

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

Добавлено через 1 час 1 минуту
Разве никто не знает???
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2010, 22:26     Передача файла в качестве параметра
Посмотрите здесь:

Функции, передача массива в качестве параметра C++
C++ [C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc()
Передача двумерного массива указателей на char в качестве параметра функции C++
C++ Передача файла в функцию в качестве параметра
Передача массива в функцию в качестве параметра C++
Передача функции с двумерным массивов в качестве параметра C++
Передача указателя в качестве параметра функции динамически подключаемой библиотеки .so C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,395
11.03.2010, 22:29     Передача файла в качестве параметра #2
Без проблем
C++
1
void func (char*,  char*) {}
Усё. Теперь , когда будешь вызывать функцию func, передавай ей в качестве параметров укзатель на стоку- имя файла и указательно строку имя переменной типа такая-то структура.
Привет.
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
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
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,395
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
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
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,395
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
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
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
11.03.2010, 23:12     Передача файла в качестве параметра #11
MILAN, похоже на правду не считая пары описок, но это ерунда - компилятор поправит!
Только некчему pfile в WriteFile передавать. Он - ее собственная переменная (в твоем коде)
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
Эксперт С++
8282 / 3501 / 143
Регистрация: 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     Передача файла в качестве параметра
Еще ссылки по теме:

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

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

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

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