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

Используя потоки ввода/вывода в С++ - C++

Восстановить пароль Регистрация
 
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 09:37     Используя потоки ввода/вывода в С++ #1
Здравствуйте помогите организовать запись информации из массива объектов в класс, чтение данной информации из класса, ввод информации с клавиатуры, вывод ее на экран. Объект состоит из минимум 3 полей стандартных типов.
Заранее спс
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2012, 09:37     Используя потоки ввода/вывода в С++
Посмотрите здесь:

C++ потоки ввода/вывода.
Потоки вывода C++
Рассчитать значения выражений используя для ввода и вывода текстовые файлы C++
Потоки ввода-вывода в С++ C++
C++ Текстовые файлы и потоки ввода/вывода
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
09.05.2012, 09:47     Используя потоки ввода/вывода в С++ #2
Извини, дорогой (дорогая), но из массива объектов в класс ничего записать нельзя. Ты хоть формулировку дай точную...
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 09:54  [ТС]     Используя потоки ввода/вывода в С++ #3
Catstail, это такое задание я не могу понять как такое реализовать могу скинуть что мне дали но это вообще не то что мне надо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <conio.h>
#include <iostream.h>
 
class labr{
public:
int a;
char b;
int c;
friend ostream& operator <<(ostream &inp, const labr& l);
};
 
 
ostream& operator <<(ostream &inp, const labr& l){
inp<<"Money: "<<l.a<<l.b<<l.c<<endl;
return inp;
}
 
void main()
{
labr l;
cout<<l;
getch();
}
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
09.05.2012, 10:27     Используя потоки ввода/вывода в С++ #4
Не может быть такой формулировки. Может быть другое: запись из массива объектов в файл и восстановление из файла массива объектов. Но тогда вопрос: каких объектов?
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 10:31  [ТС]     Используя потоки ввода/вывода в С++ #5
Catstail, организовать запись информации из массива объектов в файл, чтение данной информации из файла, ввод информации с клавиатуры, вывод ее на экран. Объект состоит из минимум 3 полей стандартных типов.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
09.05.2012, 12:35     Используя потоки ввода/вывода в С++ #6
Цитата Сообщение от gusca Посмотреть сообщение
информации из массива объектов в класс
может запись в объект?

Добавлено через 4 минуты
Цитата Сообщение от gusca Посмотреть сообщение
Catstail, организовать запись информации из массива объектов в файл, чтение данной информации из файла, ввод информации с клавиатуры, вывод ее на экран. Объект состоит из минимум 3 полей стандартных типов.
C++
1
2
3
4
5
6
7
ofstream filew("text.txt",ios::app);
//в конце main сделай filew.close();
 
void func_write(*labr labr_)
{
filew <<labr_.a <<labr_.b <<labr_.c;
}
Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
вот для чтения
ifstream filer("text.txt");
//в конце main сделай filer.close();
void func_read(*labr labr_)
{
filew >>labr_.a >>labr_.b >>labr_.c;
}
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 12:41  [ТС]     Используя потоки ввода/вывода в С++ #7
Van111, не работает почему то
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
09.05.2012, 12:50     Используя потоки ввода/вывода в С++ #8
Цитата Сообщение от gusca Посмотреть сообщение
Van111, не работает почему то
ошибки?
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 13:14  [ТС]     Используя потоки ввода/вывода в С++ #9
Van111, в какое место надо вставить тот код?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
09.05.2012, 13:42     Используя потоки ввода/вывода в С++ #10
Цитата Сообщение от gusca Посмотреть сообщение
Van111, в какое место надо вставить тот код?
функции записи и чтения - до функции main

Цитата Сообщение от Van111 Посмотреть сообщение
ifstream filer("text.txt");
Цитата Сообщение от Van111 Посмотреть сообщение
ofstream filew("text.txt",ios::app);
в начале main


Цитата Сообщение от Van111 Посмотреть сообщение
filew.close();
Цитата Сообщение от Van111 Посмотреть сообщение
filer.close()
в конце main
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 14:14  [ТС]     Используя потоки ввода/вывода в С++ #11
Van111, сделал как ты написал
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
#include <conio.h>
#include <iostream.h>
 
 
class labr{
public:
int a;
char b;
int c;
friend ostream& operator <<(ostream &inp, const labr& l);
};
 
 
ostream& operator <<(ostream &inp, const labr& l){
inp<<"Money: "<<l.a<<l.b<<l.c<<endl;
return inp;
}
 
//ofstream filew("text.txt",ios::app);
//в конце main сделай filew.close();
void func_read(*labr labr_)
{
filew >>labr_.a >>labr_.b >>labr_.c;
}
void func_write(*labr labr_)
{
filew <<labr_.a <<labr_.b <<labr_.c;
}
 
//ifstream filer("text.txt");
//в конце main сделай filer.close();
 
 
 
void main()
{
 
ifstream filer("text.txt");
ofstream filew("text.txt",ios::app);
labr l;
cout<<l;
getch();
filer.close();
}
выбивает ошибку:
Style of function definition is now obsolete
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
09.05.2012, 16:31     Используя потоки ввода/вывода в С++ #12
Вот проверенное решение VC++ 6.0:

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
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
 
class Some
{
 
public:
    int I;
    char *S;
    float D;
 
    Some() // конструктор по умолчанию
    {
        this->I=0;
        this->D=0;
        this->S=NULL;
    }
    Some(int i, char *s, float d) 
    {
        int l;
        this->I=i;
        this->D=d;
        l=strlen(s);
        S=new char[l+1];
        strcpy(this->S,s);
    }
 
    ~Some() // деструктор
    {
        if (this->S != NULL) delete this->S;
        printf("\nObject deleted\n");
    }
 
    void Fill() // заполнить с клавиатуры
    {
        char Buf[1000];
        int i;
 
        printf("Insert I ");
        scanf("%d",&this->I);
        
        for (i=0; i< 1000; i++) Buf[i]=0;
 
        printf("Insert S ");
        scanf("%s",Buf);
        this->S=new char[strlen(Buf)+1];
        strcpy(this->S,Buf);
 
        printf("Insert D ");
        scanf("%E",&this->D);
    }
    void Print() // Распечатать
    {
        printf("\n\n I=%d",this->I);
        printf("\n S=%s",this->S);
        printf("\n D=%f",this->D);
    }
 
    void Save(FILE *fo) // сохранить в файл
    {
    
        fprintf(fo,"%d\n",this->I);
        fprintf(fo,"%s\n",this->S);
        fprintf(fo,"%f\n",this->D);
 
    }
 
    void Restore(FILE *fi) // восстановить из файла
    {
        char Buf[1000];
 
        int i;
        for (i=0; i< 1000; i++) Buf[i]=0;
        
        fscanf(fi,"%d",&this->I);
 
        fscanf(fi,"%s",Buf);
 
        this->S=new char[strlen(Buf)+1];
        strcpy(this->S,Buf);        
 
        fscanf(fi,"%f",&this->D);
        
    }
 
};
 
int main(int argc, char* argv[])
{
    int i,n;
 
    char *Fname="oooooooo.txt";
 
    FILE *f;
 
    // Сколько объектов?
 
    printf("How many objects is to be created? \n");
 
    scanf("%d",&n);
 
    // создаём...
 
    Some *Olist= new Some[n];
 
    // заполняем...
 
    for (i=0; i < n; i++) 
    {
        printf("%d -th Object\n",i+1);
 
        Olist[i].Fill();
 
        printf("\n");
    }
 
    // сохраняем в файле
 
    if ((f=fopen(Fname,"w")) != NULL)
    {
        for (i=0; i < n; i++)
            Olist[i].Save(f);
        fclose(f);
    }
    else
    {
        printf("Error by open!\n");
        return -1;
    }
 
    // Удаляем объекты
 
    delete [] Olist;
    
    // Создаем заново 
 
    Olist= new Some[n];
    
    // загружаем из файла
    
    printf("\n\n Restoring objects...\n\n");
 
    if ((f=fopen(Fname,"r")) != NULL)
    {
        for (i=0; i < n; i++)
        {
            Olist[i].Restore(f);
            Olist[i].Print();
        }
        fclose(f);
    }
    else
    {
        printf("\nError by open!\n");
        return -2;
    }
 
    printf("\nOK\n");
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 17:17     Используя потоки ввода/вывода в С++
Еще ссылки по теме:

Потоки ввода-вывода C++
C++ потоки вывода
C++ Непонятная ошибка. Потоки ввода/вывода

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

Или воспользуйтесь поиском по форуму:
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,585
Записей в блоге: 12
09.05.2012, 17:17     Используя потоки ввода/вывода в С++ #13
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
#include <fstream.h>
#include <conio.h>
#include <fcntl.h>
#include <io.h>
#include <conio.h>
#include <iostream.h>
#include <fstream> 
 
class labr{
public:
int a;
char b;
int c;
friend ostream& operator <<(ostream &inp, const labr& l);
};
 
 
ostream& operator <<(ostream &inp, const labr& l){
inp<<"Money: "<<l.a<<l.b<<l.c<<endl;
return inp;
}
 
ifstream filer; 
ofstream filew;
 
 
void func_read(labr *labr_)
{
filer >>labr_->a >>labr_->b >>labr_->c;
}
void func_write(labr *labr_)
{
filew <<labr_->a <<labr_->b <<labr_->c;
}
 
 
 
 
int main()
{
 
filer.open("text.txt");
filew.open("text.txt",ios::app);
labr l;
cout<<l;
getch();
filer.close();
filew.close();
return 0;
}
поищи и удали лишние инкллуды
Yandex
Объявления
09.05.2012, 17:17     Используя потоки ввода/вывода в С++
Ответ Создать тему
Опции темы

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