5 / 5 / 1
Регистрация: 17.08.2009
Сообщений: 168
1

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

09.05.2012, 09:37. Показов 1265. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте помогите организовать запись информации из массива объектов в класс, чтение данной информации из класса, ввод информации с клавиатуры, вывод ее на экран. Объект состоит из минимум 3 полей стандартных типов.
Заранее спс
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2012, 09:37
Ответы с готовыми решениями:

Работа с структурами: выполните, используя файловые потоки для ввода/вывода
Используя тип данных запись с именем PRICE, содержащую следующие поля: • TOVAR – название товара;...

Что такое потоки ввода, потоки вывода?
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода,...

Потоки ввода вывода
Почему с помощью классов ostream и istream нельзя создавать свои потоки ввода вывода? std::ostream...

Потоки ввода/вывода
Здравствуйте! Расскажите мне пожалуйста подробнее о всех особенностях потоков ввода/вывода; в...

12
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
09.05.2012, 09:47 2
Извини, дорогой (дорогая), но из массива объектов в класс ничего записать нельзя. Ты хоть формулировку дай точную...
0
5 / 5 / 1
Регистрация: 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();
}
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
09.05.2012, 10:27 4
Не может быть такой формулировки. Может быть другое: запись из массива объектов в файл и восстановление из файла массива объектов. Но тогда вопрос: каких объектов?
0
5 / 5 / 1
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 10:31  [ТС] 5
Catstail, организовать запись информации из массива объектов в файл, чтение данной информации из файла, ввод информации с клавиатуры, вывод ее на экран. Объект состоит из минимум 3 полей стандартных типов.
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 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;
}
0
5 / 5 / 1
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 12:41  [ТС] 7
Van111, не работает почему то
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
09.05.2012, 12:50 8
Цитата Сообщение от gusca Посмотреть сообщение
Van111, не работает почему то
ошибки?
0
5 / 5 / 1
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 13:14  [ТС] 9
Van111, в какое место надо вставить тот код?
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 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
0
5 / 5 / 1
Регистрация: 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
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,640
Записей в блоге: 13
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;
}
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 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;
}
поищи и удали лишние инкллуды
0
09.05.2012, 17:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2012, 17:17
Помогаю со студенческими работами здесь

Потоки ввода-вывода в С++
Ребят, нужна помощь В программирование я новичок, но сдать нужно 1. Написать программу,...

Потоки ввода-вывода
1) Типы данных, для которых перегружены операторы форматного ввода-вывода.

Непонятная ошибка. Потоки ввода/вывода
Решал задачу и столкнулся с проблемой (первый день на c++ &quot;пишу&quot;) не пойму что за ошибка ...

Текстовые файлы и потоки ввода/вывода
Доброго времени суток. Уважаемый гуру, не могли бы вы мне помочь с решением данной программы....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru