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

Нужна помощь в исправлении кода одной функции... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Процедура в процедуре. Как сделать. http://www.cyberforum.ru/cpp-beginners/thread29775.html
Вопрос в том, можно ли вызвать в процедуру процедуру. Если да, то какой синтаксис будет в этом случае правильным.
C++ Функция в задаче с процентами. #include <stdio.h> #include <conio.h> #include <math.h> int percent (int x, int y) { float c; if (x>0&&y>0) { c=x/100*y; http://www.cyberforum.ru/cpp-beginners/thread29754.html
Сортировка данных стуктуры C++
Здравствуйте, пытался сортировать данные стуктуры, но ничего не выходило, либо выводятся нули, либо вообще ничего. #include <stdio.h> #include <iostream.h> #include <conio.h> #include...
C++ sql + c#/c++
Доброе время суток, уважаемые программисты. Если вас не затруднит то прошу подсказать/помочь/натолкнуть на мысль каким образом можно сделать следующее задание: Нужно реализовать БД в sql c...
C++ Как инициализировать массив чисел в С++? http://www.cyberforum.ru/cpp-beginners/thread29725.html
Помогите пожалуйста, проблема следующая: в классе Eleve нужно инициализировать массив чисел (оценки) так, чтобы при создании класса он заполнялся (через параметр конструктора), потом его можно было...
C++ Удаление записи из структуры Искал ключи к файлу, но кроме "r" "w" "a" больше не нашел. Помогите пожалуйста на С++ без всяких классов, при нажатии 2, можно было удалить запись из структуры #include <stdio.h> #include... подробнее

Показать сообщение отдельно
kandrey58region
1 / 1 / 0
Регистрация: 11.03.2009
Сообщений: 109
12.04.2009, 23:23  [ТС]
всем спасибо огромное за помощь и объяснение...
теперь появились новые проблема, почему то при использовании данной функции у меня из такого текстового файла
Код
Huindai             350  400  plohoi                                  l
Samsung             500  550  norma                                   l
Sony                300  400  rtye                                    l
Acer                200  350  hgfak                                   l
1) в конце каждой записи стоит смайлик (улыбающаяся рожица)...
2) последняя запись с монитором Acer выводится два раза, остальные записи выводятся по одному разу как положено...
как думаете с чем могут быть связаны данные проблемы

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
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
 
struct mon {
  char type[20];
  int opt, rozn;
  char comm[40];
};
int kol=0;
int p=0;
int v=0;
void WriteFile()
{
    FILE *fi,*fo;
     clrscr();
     if ((fi=fopen("D:\\file.txt", "r"))==0){
      cout << "Error open input file!!!" ;
      return;}
     if ((fo=fopen("D:\\out.dat","w+b"))==0){
      cout << "Error open output file!!!";
      return;}
     const int dl=80;
     char s[dl];
    mon a;
    while(fgets(s,dl,fi)){
    strncpy(a.type,s,19);
    a.type[19]='\0';
    a.opt=atoi(&s[20]);
    a.rozn=atoi(&s[25]);
    strncpy(a.comm,&s[30],40);
    fwrite(&a,sizeof(mon),1,fo);
    kol++;
    };
    fclose(fi);
    fclose(fo);
 
    return;
}
 
void out()
{
    FILE *fo;
    clrscr();
    if ((fo=fopen("D:\\out.dat","rb"))==0){
      cout << "Error open output file!!!";
      return ;}
    int i;
    cout<<"Input number of Zapisi ";
    cin >>i;//после ввода i не забываем нажать Enter
    if (i>kol) {
      cout << "Zapisi net!!!";
      return;}
 
    mon a;
    fseek(fo,sizeof(mon)*(i-1),SEEK_SET);
    fread(&a,sizeof(mon),1,fo);
    cout << "Tip: " << a.type << " opt.: " << a.opt << " rozn: " << a.rozn << endl;
    fclose(fo);
}
 
void ClearFile()
{
    FILE *fo;
    clrscr();
    if ((fo=fopen("D:\\out.dat","wb"))==0){
    cout << "Error open output file!!!"<<endl;
      return ;}
    fclose(fo);
}
 
void Opt()
{
  mon a;
  FILE *fo;
 
  if ((fo=fopen("D:\\out.dat","r"))==0){
    cout << "Error open output file!!!";
    return;}
  fseek(fo,0,SEEK_SET);
   int res;
  cout << "Vvedite optovuy cenu: " << endl;
  cin >> p;
   do
   {
   res=fread(&a,sizeof(mon),1,fo);
    if (a.opt==p)
    {
      cout<<a.type<<" "<<a.opt<<" "<<a.rozn<<" "<<a.comm<<" "<<endl;
    }
   }
   while(res==1);
  fclose(fo);
   return;
}
void Rozn()
{
  mon a;
  FILE *fo;
  if ((fo=fopen("D:\\out.dat","r"))==0){
    cout << "Error open output file!!!";
    return;}
  fseek(fo,0,SEEK_SET);
   int res1;
  cout << "Vvedite roznichnuy cenu: " << endl;
  cin >> v;
   do
   {
   res1=fread(&a,sizeof(mon),1,fo);
    if (a.rozn==v)
    {
      cout<<a.type<<" "<<a.opt<<" "<<a.rozn<<" "<<a.comm<<" "<<endl;
    }
   }
   while(res1==1);
  fclose(fo);
   return;
}
void Search()
{
 char menu_2;
 do
 {
   cout <<endl<< "1 Optovaya" << endl << "2 Roznica" << endl << "3 Vozvrat v gl. menu"<< endl;
   menu_2=getch();
   switch(menu_2)
   {
     case '1':
       Opt();
       break;
     case '2':
       Rozn();
       break;
      };
   if (menu_2=='3') break;
 }
 while(1);
clrscr();
}
 
void main()
{
 char menu;
 int i;
 kol=0;
 clrscr();
 do
 {
   cout <<endl<< "1 Zapis' v file" << endl <<"2 Vivod na ekran" << endl << "3 Ochistka file" << endl << "4 Search..."<< endl << "5 Vichod" << endl;
   menu=getch();
   switch(menu)
   {
     case '1':
       WriteFile();
       break;
     case '2':
       out();
       break;
     case '3':
       ClearFile();
       break;
     case '4':
       Search();
       break;
         };
   if (menu=='5') break;
 }
 while(1);
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru