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

Запись структуры в файл... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ наследование классов http://www.cyberforum.ru/cpp-beginners/thread89131.html
Здравствуйте! У меня проблема о наследовании классов и определении собственно с каким из наследников идет процесс. Есть класс Ware, у которого открытые наследники Service и Item. Можно ли как-то...
C++ Про возвращение значения... Как написать ф-цию,возвращающую значение 1,если в строке содержится хотя бы один символ "." ? http://www.cyberforum.ru/cpp-beginners/thread89129.html
небольшая ошибка в чем дело? C++
не компилится данная прога в с++ выдает error C2447: '{' : missing function header (old-style formal list?) в ms visual studio 2008 #include "stdafx.h" #include <iostream> #include <cmath>...
C++ error C2447: '{' : missing function header
не компилится данная прога выдает error C2447: '{' : missing function header (old-style formal list?) в ms visual studio 2008 #include "stdafx.h" #include <iostream> #include <cmath> using...
C++ Пятнашки в СИ(borland BC) http://www.cyberforum.ru/cpp-beginners/thread89112.html
Люди плиз.подскажите,не могу составить игру пятнашки в СИ(Borland BC).Чет какая-то запара!
C++ Немного подправить. Имеется код программы. Он рабочий, но почему то при вводе данных в программу, в документе database.txt выводятся какие то символы, но ни как не то, что я ввела. Это первая проблема. Вторая проблема... подробнее

Показать сообщение отдельно
Lucchese
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 10
27.01.2010, 14:37  [ТС]
Может кто то написать пример как реализовать в виде функции например просмотр БД
C++
1
2
3
4
5
6
7
8
9
10
11
12
              cout << "\n\nSoderzimoe bazi 'database.txt'\n\n";
                                                
                                fseek( f, 0, SEEK_SET );                               
                                setlocale( LC_ALL, "Rus" );                          
                                while( true )                                           
                                {
                                        if( fread( &t, sizeof(DBase), 1, f ) !=1 ) break;
                                        cout << "\tFIO:" << t.PIB 
                                             << "\tZarplata:" << t.salary 
                                                 << "\tStaz:" << t.experience 
                                                 << "\n";
                                }
а то я пытаюсь но у меня вылетают ошибки при компиляции
Код
[C++ Error] programa.cpp(39): E2451 Undefined symbol 'f'
[C++ Error] programa.cpp(42): E2451 Undefined symbol 't'
Добавлено через 32 минуты
вроде вроде понял как Спасибо accept !
Метод тыка хорошая штука))

Добавлено через 2 часа 18 минут
С функциями разобрался )
Теперь не могу понять 2 вещи
1) как сделать Сортирование методом выбора?
вот так я пробую
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
template <class T>
void selectSort(DBase, long size) 
{
long i, j, k;
T x;
                int s_salary;
                DBase t;
                FILE *f;
                f = fopen( "database.txt", "ab+" );
                if( f == NULL ) 
                {
                }
                fseek( f, 0, SEEK_SET );
for( i=0; i < size; i++) { // i - номер текущего шага
k=i; x=t.experience[i];
for( j=i+1; j < size; j++) // цикл выбора наименьшего элемента
if ( t.experience[j] < x ) 
{
k=j; 
x=t.experience[j]; // k - индекс наименьшего элемента
}
t.experience[k] = t.experience[i]; 
t.experience[i] = x; // меняем местами наименьший с a[i]
}
}
Но проверить работает или нет не могу, не знаю как вывести полученный массив на экран(((
и 2-е.
С поиском проблемы вот код
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
void SearchBD()
{
                int s_salary;
                DBase t;
                FILE *f;
                f = fopen( "database.txt", "ab+" );
                if( f == NULL ) 
                {
                }
                cout << "\nVvedite Zrobitnu platu dlya powuku: ";
                cin >> s_salary; //Зарплата для поиска.
                
                fseek( f, 0, SEEK_SET );
                while( true )
                {
                if (feof(f)) break;
                fread( &t, sizeof(DBase), 1, f );
                while ( true )
                {
                 if ( t.salary != s_salary ) break;
                 if ( t.salary == s_salary ) 
                {           
                 cout << "\tFIO:" << t.PIB << "\tZarplata:" << t.salary << "\tStaz:" << t.experience << "\n";
                }
                }                                      
                }       
                fclose(f);
                
}
Оно у меня бесконечно выводит одного и того же сотрудника, я не могу понять что нада написать в while цикл чтобы оно нормально работало. На этом все
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru