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

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

Войти
Регистрация
Восстановить пароль
 
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
#1

Указатель на имя файла как аргумент функции. Как реализовать? - C++

17.01.2014, 18:57. Просмотров 855. Ответов 3
Метки нет (Все метки)

Доброго времени суток всем! Прошу помощи! Написал программу, есть пару моментов, сложных для меня.
Необходимо написать две функции, одну из которых я уже написал, но кое-чего не хватает (см. ниже)
1.void WriteComplex(char * fname, Complex * buffer, int count);
функция записывает count элементов типа Complex из массива
buffer в файл с именем fname;
- это я реализовал, единственное не могу понять как передать в функцию указатель на имя файла(char * fname)

2. int ReadComplex(char * fname, Complex * buffer, int count);
– функция читает count элементов типа Complex из файла с именем fname в массив buffer и возвращает количество фактически прочитанных элементов.
Если можно, с примером, или может есть программа с аналогичными функциями.
Вот мой код:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include<iostream>
#include<conio.h>
#include <iomanip>
#include <math.h>
#include <fstream>
 
using namespace std;
struct Complex                                 // структура комплексных чисел
{
    double re;  
    double im;
};
 Complex Add(Complex c1, Complex c2); 
 Complex Sub(Complex c1, Complex c2);
 Complex Mul(Complex c1, Complex c2);
 Complex Div(Complex c1, Complex c2);
 
 void ex(Complex resAdd);
 void ex1(Complex resSub);
 void ex2(Complex resMul);
 void ex3(Complex resMul);
void print_Complex(Complex resAdd){
     cout<<"Komplexnoe chislo v algebraicheskoy forme: "<<resAdd.re<<"+"<<resAdd.im<<"i"<<endl;
     double F, Z;
     F=  atan(resAdd.im/resAdd.re);
     Z =  sqrt( resAdd.re*resAdd.re+ resAdd.im*resAdd.im); 
     cout<<"Komplexnoe chislo v pokazatelnoy forme: Cp= "<<Z<<"*e^i"<<F<<endl;
     };
     
     const int size =4; //размер массива
     void WriteComplex(Complex* pbuf, int count)/////////////////////////////////
{    
    ofstream fout;
    fout.open("C:\\C++fails\\1.txt");    
for(int t=0; t<count;t++){
        int c;
        fout<<c<<". "<<"re = "<< pbuf ->re <<", im = " << pbuf ->im << endl;
        ++pbuf;
        c++;
        }
fout.close();
}
 
int main()
{
    Complex c1;
    Complex c2;
    Complex c3;
    c3.re=5;
    c3.im=9;
    
    Complex c4={8.7,9.3};
    Complex res; 
    
   Complex buf[size];  
   Complex*pbuf=buf;
         
cout << "Vvedite deystvitelnuyu chast kompleksnogo chisla c1:  " << endl; 
cin>>c1.re;
cout << "Vvedite mnimuyu chast kompleksnogo chisla c1: " << endl;
cin>>c1.im;
cout << "Vvedite deystvitelnuyu chast kompleksnogo chisla c2:  " << endl; 
cin>>c2.re;
cout << "Vvedite mnimuyu chast kompleksnogo chisla c2: " << endl;
cin>>c2.im;
cout<<endl<<endl;
cout<<setw(60)<<"******************Menu********************"<<endl;
cout<<"Viberite punkt menu: "<<endl;
cout<<"1. Slogenie komplexnih chisel. "<<endl;
cout<<"2. Vichitanie komplexnih chisel."<<endl;
cout<<"3. Umnogenie komplexnih chisel."<<endl;
cout<<"4. Delenie komplexnih chisel."<<endl<<endl<<endl;
 
pbuf->re=c1.re;
  pbuf->im=c1.im;
pbuf++;
pbuf->re=c2.re;
  pbuf->im=c2.im;
pbuf++;
 
pbuf->re=c3.re;
  pbuf->im=c3.im;
  pbuf++;
pbuf->re=c4.re;
  pbuf->im=c4.im;
 WriteComplex(buf,4);////////////////////////////////////////
 
int e;
cin>>e;
cout<<endl;
switch(e)
{
         case 1:
Add( c1,  c2);
Complex resAdd;
ex(resAdd);
print_Complex(resAdd);
break;
         case 2:
Sub(c1, c2);
Complex resSub;
ex1(resSub); 
break;
         case 3:
Mul(c1, c2);
Complex resMul;
ex2(resMul); 
break;
         case 4:
Div(c1, c2);
Complex resDiv;
ex3(resDiv);
break;          
default: cout<<"Takogo punkta v menu net!!!";
} 
getch();
return 0;
}
 Complex Add(Complex c1, Complex c2)
{
        Complex resAdd;
        resAdd.re= c1.re+c2.re;
        resAdd.im= c1.im+c2.im;
        return resAdd;
}
 
void ex(Complex resAdd)
{
 cout<<"c1+c2= "<<resAdd.re<<" + "<<resAdd.im<<"i"<<endl<<endl;
}
 Complex Sub(Complex c1, Complex c2)
 {
      Complex resSub;
        resSub.re= c1.re-c2.re;
        resSub.im= c1.im-c2.im;
        return resSub;
}   
void ex1(Complex resSub)
{
 cout<<"c1-c2= "<<resSub.re<<" + "<<resSub.im<<"i"<<endl<<endl;
}
 
 Complex Mul(Complex c1, Complex c2)
 {
      Complex resMul;
        resMul.re= c1.re*c2.re;
        resMul.im= c1.im*c2.im;
        return resMul;
}   
void ex2(Complex resMul)
{
 cout<<"с1*с2= "<<resMul.re<<" + "<<resMul.im<<"i"<<endl;
}
 
Complex Div(Complex c1, Complex c2)
 {
      Complex resDiv;
        resDiv.re= c1.re/c2.re;
        resDiv.im= c1.im/c2.im;
        return resDiv;
}   
void ex3(Complex resDiv)
{
 cout<<"с1\с2= "<<resDiv.re<<" + "<<resDiv.im<<"i"<<endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2014, 18:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Указатель на имя файла как аргумент функции. Как реализовать? (C++):

Указатель массива как аргумент функции - C++
Я прочитал несколько алгоритмов сортировки массивов, но не совсем понял, если массив чисел будет передан в аргумент функции через...

Указатель на функцию с аргументами, как аргумент другой функции - C++
У меня есть некая функция, которая принимает как аргумент другую функцию typedef void(*func_type)(); start(func_type...

Возможно ли использовать имя файла как аргумент main()? - C++
Хочу добиться разного поведения при разных именах exe'шника. Это возможно, не используя батник и стандартный ввод аргументов?

Как читать целые числа из файла в аргумент функции без временных переменных? - C++
Следующая программа читает первые 2 целых числа, записанные в файле file.txt и передает их как аргументы в функцию foo: #include...

Аргумент функции - указатель на метод класса - C++
Здравствуйте. Содержание задания - написать программу, создающую копию выбранного пользователем файла при помощи n-го кол-ва потоков...

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

3
alsav22
5435 / 4830 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
17.01.2014, 19:46 #2
Непонятно, в чём, собственно, сложность?
C++
1
char* fname = "C:\\C++fails\\1.txt";
Передавайте в функцию:
C++
1
WriteComplex(fname, buf, 4);
Добавлено через 2 минуты
Можно вводить:
C++
1
2
3
char fname[255];
cin.getline(fname, 255);
WriteComplex(fname, buf, 4);
1
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
18.01.2014, 18:15  [ТС] #3
alsav22, со второй функцией не поможете? как прочитать из файла?
0
alsav22
5435 / 4830 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.01.2014, 18:21 #4
Цитата Сообщение от _andrew_ Посмотреть сообщение
со второй функцией не поможете? как прочитать из файла?
Какая с ней проблема?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2014, 18:21
Привет! Вот еще темы с ответами:

Имя массива как указатель - C++
Используя имя массива как указатель, и применяя адресную арифметику выполнить задание (каждое задание оформить отдельной функцией). Дан...

Имя массива как указатель - C++
Помогите с программой пожалуйста!! Конец года, горю.. Используя имя массива как указатель, и применяя адресную арифметику выполнить...

Имя массива как указатель - C++
Выполните программу на С++: Используя имя массива как указатель, и применяя адресную арифметику выполнить задание. 3. Дан одномерный...

Указатели и ссылки. Имя массива как указатель - C++
7. Дан одномерный массив, состоящий из N целочисленных элементов. 7.1. Ввести массив с клавиатуры. 7.2. Найти минимальный положительный...


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

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

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