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

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

Восстановить пароль Регистрация
 
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
17.01.2014, 18:57     Указатель на имя файла как аргумент функции. Как реализовать? #1
Доброго времени суток всем! Прошу помощи! Написал программу, есть пару моментов, сложных для меня.
Необходимо написать две функции, одну из которых я уже написал, но кое-чего не хватает (см. ниже)
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 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);
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
18.01.2014, 18:15  [ТС]     Указатель на имя файла как аргумент функции. Как реализовать? #3
alsav22, со второй функцией не поможете? как прочитать из файла?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.01.2014, 18:21     Указатель на имя файла как аргумент функции. Как реализовать? #4
Цитата Сообщение от _andrew_ Посмотреть сообщение
со второй функцией не поможете? как прочитать из файла?
Какая с ней проблема?
Yandex
Объявления
18.01.2014, 18:21     Указатель на имя файла как аргумент функции. Как реализовать?
Ответ Создать тему
Опции темы

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