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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
#1

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

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

Здравствуйте помогите организовать запись информации из массива объектов в класс, чтение данной информации из класса, ввод информации с клавиатуры, вывод ее на экран. Объект состоит из минимум 3 полей стандартных типов.
Заранее спс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2012, 09:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Используя потоки ввода/вывода в С++ (C++):

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

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

Потоки ввода вывода - C++
Почему с помощью классов ostream и istream нельзя создавать свои потоки ввода вывода? std::ostream output; output << "String"; К...

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

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

Непонятная ошибка. Потоки ввода/вывода - C++
Решал задачу и столкнулся с проблемой (первый день на c++ "пишу") не пойму что за ошибка #include "stdafx.h" #include <iostream> ...

12
Catstail
Модератор
23500 / 11608 / 1894
Регистрация: 12.02.2012
Сообщений: 18,949
09.05.2012, 09:47 #2
Извини, дорогой (дорогая), но из массива объектов в класс ничего записать нельзя. Ты хоть формулировку дай точную...
0
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();
}
0
Catstail
Модератор
23500 / 11608 / 1894
Регистрация: 12.02.2012
Сообщений: 18,949
09.05.2012, 10:27 #4
Не может быть такой формулировки. Может быть другое: запись из массива объектов в файл и восстановление из файла массива объектов. Но тогда вопрос: каких объектов?
0
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 10:31  [ТС] #5
Catstail, организовать запись информации из массива объектов в файл, чтение данной информации из файла, ввод информации с клавиатуры, вывод ее на экран. Объект состоит из минимум 3 полей стандартных типов.
0
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,626
Записей в блоге: 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
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 12:41  [ТС] #7
Van111, не работает почему то
0
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,626
Записей в блоге: 12
09.05.2012, 12:50 #8
Цитата Сообщение от gusca Посмотреть сообщение
Van111, не работает почему то
ошибки?
0
gusca
5 / 5 / 0
Регистрация: 17.08.2009
Сообщений: 168
09.05.2012, 13:14  [ТС] #9
Van111, в какое место надо вставить тот код?
0
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,626
Записей в блоге: 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
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
0
Catstail
Модератор
23500 / 11608 / 1894
Регистрация: 12.02.2012
Сообщений: 18,949
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
Van111
211 / 190 / 4
Регистрация: 03.08.2011
Сообщений: 2,626
Записей в блоге: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 17:17
Привет! Вот еще темы с ответами:

Переделать потоки ввода-вывода на prinf и scanf - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int x,y,i,j,n1,m1,n2,m2,z; void cret(void) { cout&lt;&lt;&quot;\nVvedit...

Потоки ввода/вывода: дважды скопировать исходный файл - C++
Когда пытаюсь побайтно копировать из одного файла в другой - всё работает. А вот если попытаться ДВА раза скопировать исходный файл , то...

Запустить интерпретатор bash, получить потоки ввода вывода - C++
Здравствуйте, мне необходимо в своей программе запустить интерпретатор bash, и получить стандартные потоки ввода/вывода, для того чтобы...

Потоки ввода/вывода. Сохранение информации в файл и ее считывание оттуда - C++
Всем доброго времени суток. Неделю две назад я начал делать программу, которая бы сохраняла информацию о так называемых фирмах в текстовом...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru