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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать структуру с именем OBMEN, содержащую следующие поля: http://www.cyberforum.ru/cpp-beginners/thread1074242.html
Описать структуру с именем OBMEN, содержащую следующие поля: -количество комнат; -этаж; -площадь; -адрес. Написать программу, которая обеспечивает: -начальное формирование базы данных;...
C++ Составить программу, которая в зависимости от порядкового номера месяца выводит на экран количество дней в этом месяце Помогите, пожалуйста, решить задачу в С++. Составить программу, которая в зависимости от порядкового номера месяца выводит на экран количество дней в этом месяце (учесть високосный год или нет,... http://www.cyberforum.ru/cpp-beginners/thread1074234.html
Переписать в массив М1 все отрицательные элементы массива М C++
Переписать в массив М1 все отрицательные элементы массива М
C++ скажите как переделать задачу из Pascal в Си
Вот условие: Найти во входной строке самую внутреннюю пару скобок {...} и переписать в выходную строку содержащиеся между ними символы. Во входной строке фрагмент удаляется. Вот её решение в...
C++ сортировка массива http://www.cyberforum.ru/cpp-beginners/thread1074199.html
программа работает правильно, единственное нужно использовать сортировку (по убыванию как мне сказали) :) /*Задан неупорядоченный числовой массив, состоящий из n элементов. 7. Используя сортировку...
C++ Чем дальше в лес, тем больше дров. Не соображу, как собрать в кучу К окончанию курсов по С++ нам приурочили мини-дипломную работу. Сначала я посчитала, что ничего сложного в этом нет. Но по мере моих попыток разобраться в этом стала понимать, что теперь я... подробнее

Показать сообщение отдельно
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64

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

17.01.2014, 18:57. Просмотров 733. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru