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

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

Войти
Регистрация
Восстановить пароль
 
 
Ikatta
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 16
#1

Ввод из файла. - C++

30.05.2011, 16:32. Просмотров 853. Ответов 24
Метки нет (Все метки)

дана программа. в ней нужно ввести данные из файла. при выводе их на экран выводит не той кодировкой. помогите поменять. вот код программы:
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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
//---------------------------------------------------------------------------
//ГЄГ®Г*Г±ГІГ*Г*ГІГ*
const n=3;
//ñîçäГ*Г*ГЁГҐ ГЄГ«Г*Г±Г±Г*
class my{
public:
char nazv[20];
int cena;
int kolvo;
int vozmin;
int vozmax;};
int comp(const void *, const void *);
int main(int argc, char* argv[])
 
{ //îáüÿâëåГ*ГЁГҐ ïåðåìåГ*Г*Г*ûõ
 int j,a,b,h,l,g; float k,c; char *d; my var[n];
 char text;
FILE *fp,*fp1;//ññûëêГ* Г*Г* ïîòîê
//îòêðûòèå ГґГ*éëГ*
if ((fp=fopen("rez","wt"))==NULL)
{perror("dat");
return 1;}
 cout<<"1.VVod vrychnuy\n";
 cout<<"2.Zagruzka is faila\n";
   cin>>g;
 if (g==1)
for(j=0;j<n;j++)
{
//ââîä Г*èìåГ*îâГ*Г*ГЁГї
printf("vvedite nazvanie\n");
scanf("%s",&var[j].nazv);
fprintf(fp,"%s ",var[j].nazv);
//ââîä öåГ*Г»
printf("vvedite ceny\n");
scanf("%d",&var[j].cena);
fprintf(fp,"%d ",var[j].cena);
//ââîä êîëè÷åñòâГ*
printf("vvedite kolvo\n");
scanf("%d",&var[j].kolvo);
fprintf(fp,"%d ",var[j].kolvo);
//ââîä ìèГ*ГЁГ¬Г*ëüГ*îãî âîçðГ*Г±ГІГ*
printf("vvedite min vozrast\n");
scanf("%d",&var[j].vozmin);
fprintf(fp,"%d",var[j].vozmin);
//ââîä Г¬Г*ГЄГЁГ±Г¬Г*ëüГ*îãî âîçðГ*Г±ГІГ*
printf("vvedite max vozrast\n");
scanf("%d",&var[j].vozmax);
fprintf(fp,"%d ",var[j].vozmax);
fprintf(fp,"\n");}
//ñ÷èòûâГ*Г*ГЁГҐ ГЁГ§ ГґГ*éëГ*
if (g==2) {
fp1=fopen("C:\\Program Files\\Borland\\CBuilder6\\Projects\\dat.txt","rt");
for(j=0;j<n;j++)
{
fscanf(fp," %c",&var[j].nazv);
text=
//"%d",var[j].cena,"%d",var[j].kolvo,"%d",var[j].vozmin,"%d",var[j].vozmax);
printf("%s",var[j].nazv);  }}
//printf("%s %d %d %d-%d \t \n",&var[j].nazv,&var[j].cena,&var[j].kolvo,&var[j].vozmin,&var[j].vozmax);}}
//cîçäГ*Г*ГЁГҐ ìåГ*Гѕ
cout<<"\n";
cout<<"MENU: \n";
cout<<" 1. dobavlenie \n ";
cout<<"2. ydalenie po nomery \n";
cout<<" 3. sortirovka po cene \n";
cout<<" 4. sortirovka po kolvo \n";
//cout<<"5. sortirovka po nazvaniu\n ";
cout<<" 5. sortirovka po minimalnomy vozrasty\n ";
cout<<"6. sortirovka po maxsimalnomy vozrasty\n ";
cout<<" vvedite nomer menu \n";
cin>>h;
//äîáГ*âëåГ*ГЁГҐ
if (h==1) {
//ââîä Г*èìåГ*îâГ*Г*ГЁГї
printf("vvedite nazvanie\n");
scanf("%s",&var[j].nazv);
fprintf(fp,"%s ",var[j].nazv);
//ââîä öåГ*Г»
printf("vvedite ceny\n");
scanf("%d",&var[j].cena);
fprintf(fp,"%d ",var[j].cena);
//ââîä êîëè÷åñòâГ*
printf("vvedite kolvo\n");
scanf("%d",&var[j].kolvo);
fprintf(fp,"%d ",var[j].kolvo);
//ââîä ìèГ*ГЁГ¬Г*ëüГ*îãî âîçðГ*Г±ГІГ*
printf("vvedite min vozrast\n");
scanf("%d",&var[j].vozmin);
fprintf(fp,"%d",var[j].vozmin);
//ââîä Г¬Г*ГЄГЁГ±Г¬Г*ëüГ*îãî âîçðГ*Г±ГІГ*
printf("vvedite max vozrast\n");
scanf("%d",&var[j].vozmax);
fprintf(fp,"%d ",var[j].vozmax);
fprintf(fp,"\n");}
//ГіГ¤Г*ëåГ*ГЁГҐ
if(h==2)
{cout<<"vvedite nomer";
cin>>l;
for(j=l;j<n-1;j++)
var[j]=var[j+1];}
//ñîðòèðîâêГ* ГЇГ® öåГ*ГҐ
if(h==3)
{{int temp=0;
        for (int j=1;  j<n  ;  j++){
                for (int j=0;  j<n-j;  j++){
                        if (var[j].cena>var[j+1].cena){
                                temp=var[j].cena;
                                var[j].cena=var[j+1].cena;
                                var[j+1].cena=temp;
                        }
                }
        } }
        for(j=1;j<n;j++)
        {cout<<var[j].nazv<<" "<<var[j].cena<<"\n";
        fprintf(fp,"%s",var[j].nazv," %d ", var[j].cena);
        fprintf(fp,"\n");}}
//ñîðòèðîâêГ* ГЇГ® êîëè÷åñòâó
if(h==4)
 {{int temp=0;
        for (int j=1;  j<n  ;  j++){
                for (int j=0;  j<n-j;  j++){
                        if (var[j].kolvo>var[j+1].kolvo){
                                temp=var[j].kolvo;
                                var[j].kolvo=var[j+1].kolvo;
                                var[j+1].kolvo=temp;
                        }
                }
        } }
        for(j=1;j<n;j++)
        {cout<<var[j].nazv<<" "<<var[j].kolvo<<"\n";
        fprintf(fp,"%s",var[j].nazv," %d ", var[j].kolvo);
        fprintf(fp,"\n");}}
//ñîðòèðîâêГ* ГЇГ® Г*Г*çâГ*Г*ГЁГѕ
//if(h==5) {
//for(j=0; j<n;j++)
  //qsort(var[j].cena,10,sizeof(var[j].cena),comp); }
//ñîðòèðîâêГ* ГЇГ® ìèГ*ГЁГ¬Г*ëüГ*îìó âîçðГ*Г±ГІГі
if(h==5)
{{int temp=0;
        for (int j=1;  j<n  ;  j++){
                for (int j=0;  j<n-j;  j++){
                        if (var[j].vozmin>var[j+1].vozmin){
                                temp=var[j].vozmin;
                                var[j].vozmin=var[j+1].vozmin;
                                var[j+1].vozmin=temp;
                        }
                }
        } }
        for(j=1;j<n;j++)
        {cout<<var[j].nazv<<" "<<var[j].vozmin<<"\n";
        fprintf(fp,"%s",var[j].nazv," %d ", var[j].vozmin);
        fprintf(fp,"\n");}}
//ñîðòèðîâêГ* ГЇГ® Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*îìó âîçðГ*Г±ГІГі
if(h==6)
{{int temp=0;
        for (int j=1;  j<n  ;  j++){
                for (int j=0;  j<n-j;  j++){
                        if (var[j].vozmax>var[j+1].vozmax){
                                temp=var[j].vozmax;
                                var[j].vozmax=var[j+1].vozmax;
                                var[j+1].vozmax=temp;
                        }
                }
        }
        }
        for(j=1;j<n;j++)
        {cout<<var[j].nazv<<" "<<var[j].vozmax<<"\n";
        fprintf(fp,"%s",var[j].nazv," %d ", var[j].vozmax);
        fprintf(fp,"\n");}}
            c=-900;
cout<<"\nvvedite kolvo deneg\n";
cin>>k;
cout<<"min vozrast\n";
cin>>a;
cout<<"max vozrast\n";
cin>>b;
// Г*Г*õîæäåГ*ГЁГҐ Г±Г*ìîé äîðîãîé èãðóøêè
for(j=0;j<n;j++)
if(var[j].cena>c){c=var[j].cena; d=var[j].nazv;}
cout<<d;
//Г*Г*õîæäåГ*ГЁГҐ èãðóøêè ГЇГ® Г§Г*Г¤Г*Г*Г*ûì êîë-âîì äåГ*ГҐГЈ ГЁ âîçГ*Г±ГІГ*ûå ГЈГ°Г*Г*èöû
for(j=1;j<=n;j++)
if (k<=var[j].cena && a>=var[j].vozmin && b<=var[j].vozmax)
cout<<var[j].nazv<<"\n";
getch();
        return 0;
}
//---------------------------------------------------------------------------
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 16:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод из файла. (C++):

ввод из файла - C++
подскажите как делать ввод из файла

Ввод из файла - C++
Написал такой метод, но отказывается работать. void file_in(){ freopen(&quot;in.txt&quot;,&quot;r&quot;,stdin); cin&gt;&gt;size; ...

Ввод из файла - C++
Помогите написать код программы которая проверяет правильно ли указано имя файла и производится ввод из файла.

Ввод из файла - C++
Есть ввод из файла, но при запуске программы ничего не происходит - черный экран с мигающим курсором ifstream in(&quot;D:\file.txt&quot;); ...

Ввод из файла в вектор - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;ostream&gt; #include &lt;vector&gt; const int size=7; using...

Ввод данных из файла - C++
Всем доброго времени суток! Написала программку: расчет формулы, в которой 6 переменных, данные вводила с клавиатуры. Но нужно чтобы данные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
30.05.2011, 20:34 #16
точно, звыняй сча

Добавлено через 29 секунд
C++
1
2
3
4
5
6
7
8
9
10
char buff[32]={0};
char temp1[12]={0};
int flag = 0;
for(int h=0;h<n;h++)
{
    for(int o=0;o<20;o++)
    {
        var[h].nazv[o]=0;
    }
}
это перед циклом
1
Ikatta
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 16
30.05.2011, 20:39  [ТС] #17
теперь он вот так вот выводит. спасибо за помощь.
0
Миниатюры
Ввод из файла.  
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
30.05.2011, 20:40 #18
не то чтоли *?
0
Ikatta
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 16
30.05.2011, 20:40  [ТС] #19
ага не то. выводит просто адреса.
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
30.05.2011, 20:46 #20
cout<<j<<" "<<buff<<endl;
разкоментируй
а printf там где массив выводиться закоменти и погляди что он показывает...
0
Ikatta
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 16
30.05.2011, 20:53  [ТС] #21
выводит просто
0
1
2
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
30.05.2011, 20:54 #22
и еще одно
в файле должно быть в таком порядке
1.название
2.цена
3.количество
4.минимум
5.максимум
все это дело должно разделятсья пробелами
тоесть 5 записей, 4 пробелов

Добавлено через 1 минуту
fgets не работает чтоли....
0
Ikatta
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 16
30.05.2011, 20:55  [ТС] #23
с файлом то все так.

Добавлено через 35 секунд
ладно спасибо что помог. я наверно кое где смухлюю)
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
30.05.2011, 20:56 #24
пытался ) жаль что не вышло
0
Ikatta
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 16
30.05.2011, 21:00  [ТС] #25
ничего)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2011, 21:00
Привет! Вот еще темы с ответами:

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

Ввод данных с файла - C++
struct mec { string name; double sum; }; cout &lt;&lt; &quot;Число меценатов с файла: &quot;; int n; ifstream ReadOn; ...

Ввод данных из файла - C++
Здравствуйте, не откажите пожалуйста в помощи, вот программа: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include...

Ввод массива из файла - C++
Хелп плиз!!! Задача: &quot;Нужно создать небольшую базу данных. Нужно чтобы массив задавался из текстового файла. В файле должны быть данные для...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.05.2011, 21:00
Ответ Создать тему
Опции темы

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