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

Как переделать прогу для работы с файлами - C++

Восстановить пароль Регистрация
 
Jexet
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 3
22.12.2009, 00:33     Как переделать прогу для работы с файлами #1
Всем привет) Есть вот такая программа. Она выводит на консоль сообщение - находится ли точка на прямой или нет. Координаты точки - находятся в классе point. Прямой - Priam. Мне нужно переделать прогу так, чтобы 1) В первом входном файле содержалось описание произвольного кол-ва прямых: 4 действительных числа, определяющих 2 пары точек. 2) Второй входной файл содержит набор точек. 3)Программа должна читать описания прямых из первого входного файла и выводить в выходной файл для каждой прямой:уравнение, точки из второго файла, лежащего на ней. И имена входных и выходных файлов должны передоваться через аргументы командной строки(Вот это я больше всего не понимаю) Может подскажет кто что делать?))



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
#include <iostream>
#include<fstream>
#include<process.h>
using namespace std;
const int k = 1000;
class point {
private:
    double x,y;
public:
    point() {x=0;y=0;}
    point(double x1, double y1){x=x1;y=y1;}
    void SetX(double x1){x=x1;}
    void SetY(double y1){y=y1;}
    double GetX(){return x;}
    double GetY(){return y;}
    void Print()
    {//печать
 
        cout<<"Koordinati to4ki"<< " ("<<x<<","<<y<<")"<<endl;
    }
    void show(){ //изменяет значение поля
        cout<<"Vvedite x=\n";
        cin>>x;
        if (x<-k || x>k)
        throw point();
        cout<<"Vvedite y=\n";
        cin>>y;
        if (y<-k || y>k)
        throw point();
 
    }
    
 
};
class Priam {
private:
    double  A, B, C, D;
public:
    Priam() {A=0;B=0;C=0;D=0;}
    Priam(double _A, double _B,double _C,double _D){A=_A;B=_B;C=_C;D=_D;}
    Priam(point p1,point p2) {A=p1.GetX();B=p1.GetY();C=p2.GetX();D=p2.GetY();}
    void SetA(double _A){A=_A;}
    void SetB(double _B){B=_B;}
    void SetC(double _C){C=_C;}
    void SetD(double _D){D=_D;}
    double GetA(){return A;}
    double GetB(){return B;}
    double GetC(){return C;}
    double GetD(){return D;}
 
    void PrintL(){//печать
 
        cout<<"Koordinati 1 to4ki pryamoi="<<"("<<A<<","<<B<<")"<<endl;
        cout<<"Koordinati 1 to4ki pryamoi="<<"("<<C<<","<<D<<")"<<endl;
 
    }
    void showL(){ //изменяет значение поля
 
        cout<<"vvedite koordinati pryamoy 1000 max\n";
        cout<<"Vvedite A\n";
        cin>>A;
        if (A<-k || A>k )
            throw Priam();
        cout<<"Vvedite B=\n";
        cin>>B;
        if (B<-k || B>k)
                throw Priam();
        cout<<"Vvedite C=\n";
        cin>>C;
        if (C<-k || C>k)
                throw Priam();
        cout<<"Vvedite D=\n";
        cin>>D;
        if (D<-k || D>k){
                throw Priam();}
 
        if (A==B && B==C && C==D){
            cout<<"ETO NE PRYAMAYA A PLOSKOST'=> programma zaverwaet rabotu\n\n\n";
            throw Priam();
 
        }
 
    }
    // Положение точки относительно прямой
    void Vichislenie (){
    point g;
    int a;
    a=(g.GetX()-A)*(g.GetY()-D)-(g.GetY()-B)*(g.GetX()-C);
    if (a==0)
    {
            cout <<"to4ka lejit na prymoi";
    }
    else
    {
        cout<<"to4ka ne lejit na prymoi";
    }
 
 
    };
 
};
 
/////////////////////////////////
int main(int argc,char * argv[]) {
try
{
point p;
Priam l;
p.show();
l.showL();
p.Print();
l.PrintL();
l.Vichislenie();
}
catch (point)
{
    cout<<"\nOWIBKA vvedeni nevernie koordinati to4ki\n";
}
catch (Priam)
{
    cout<<"\nOWIBKA vvedeni nevernie koordinati pryamoi";
}
 
 
}
Добавлено через 1 час 51 минуту
Хотя бы как сделать чтобы я вводил название файла из консоли и этот файл создавался?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2009, 00:33     Как переделать прогу для работы с файлами
Посмотрите здесь:

C++ Что лучше для работы с файлами?
Как переделать прогу?? C++
Приложение для работы с файлами Excel C++
Мой класс для работы с файлами C++
C++ Программа для работы с бинарными файлами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.12.2009, 01:07     Как переделать прогу для работы с файлами #2
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
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    FILE *fp1, *fp2;
 
    if (argc == 3) {
        printf(
            "ok, you have entered %s and %s"
            "\n",
            argv[1],
            argv[2]
        );
        fp1 = fopen(argv[1], "r");
        fp2 = fopen(argv[2], "w");
        if (fp1 == NULL || fp2 == NULL) {
            fprintf(
                stderr,
                "error: while opening files"
                "\n"
            );
            return 1;
        }
    } else {
        fprintf(
            stderr,
            "error: use prog.exe <file1> <file2>"
            "\n"
        );
        return 1;
    }
 
    return 0;
}
Добавлено через 11 секунд
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
#include <stdio.h>
 
int main(int argc, char *argv[])
{
    FILE *fp1, *fp2;
 
    if (argc == 3) {
        printf(
            "ok, you have entered %s and %s"
            "\n",
            argv[1],
            argv[2]
        );
        fp1 = fopen(argv[1], "r");
        fp2 = fopen(argv[2], "w");
        if (fp1 == NULL || fp2 == NULL) {
            fprintf(
                stderr,
                "error: while opening files"
                "\n"
            );
            return 1;
        }
    } else {
        fprintf(
            stderr,
            "error: use prog.exe <file1> <file2>"
            "\n"
        );
        return 1;
    }
 
    return 0;
}
Jexet
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 3
22.12.2009, 01:18  [ТС]     Как переделать прогу для работы с файлами #3
спс конечно, но как я его компилирую, то он сразу пишет error: use prog.exe <file1> <file2>
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.12.2009, 02:05     Как переделать прогу для работы с файлами #4
Код
[guest@station tmp]$ cc main.c -o t
[guest@station tmp]$ ./t
error: use prog.exe <file1> <file2>
[guest@station tmp]$ ./t f1 f2
ok, you have entered f1 and f2
error: while opening files
[guest@station tmp]$ ./t f2 f1
ok, you have entered f2 and f1
[guest@station tmp]$
Добавлено через 2 минуты
первый файл должен быть, второй - не обязательно
Jexet
0 / 0 / 0
Регистрация: 21.12.2009
Сообщений: 3
22.12.2009, 02:25  [ТС]     Как переделать прогу для работы с файлами #5
ok. Попробую так)
Yandex
Объявления
22.12.2009, 02:25     Как переделать прогу для работы с файлами
Ответ Создать тему
Опции темы

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