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

Из файла записать данные в структуру данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ std::regex : баг на сайте или баг компилятора? http://www.cyberforum.ru/cpp-beginners/thread916818.html
http://en.cppreference.com/w/cpp/regex/regex_match этот код выкидывает throw... Добавлено через 35 секунд компилятор gcc 4.8
C++ Проверить решение задачи Здравствуйте! Я С++ изучаю самостоятельно, по книге Р.Лафоре "ООП в С++". В главе 7 "Массивы и строки" столкнулся с задачей Напишите функцию main(), которая получает случайные дробные числа от... http://www.cyberforum.ru/cpp-beginners/thread916807.html
C++ Индексирование
Здраствуйте, у меня вопрос. Есть задание.....часть его звучит так Класс должен содержать перегруженные операции: - индексирования, - инкремента ++ (добавляет 1 столбец и 1 строку), - сложения...
Запись из файла в дерево C++
Помогите пожалуйста, задание записать имеющиеся данные из файла в дерево, у меня есть вот такие идеи, но я не знаю как организовать чтобы переходить на другие элементы можно было, и ещё этот код не...
C++ Что выводит массив? http://www.cyberforum.ru/cpp-beginners/thread916756.html
#include<stdio.h> int main(){ int a = {1,2,3,4,5}; printf("a = %d\n", a); return 0; }
C++ Обработка двумерных массивов. Указатели Найти наименьший элемент матрицы X (mn) и записать нули в ту строку и столбец, где он находится. подробнее

Показать сообщение отдельно
Praktolock
65 / 65 / 1
Регистрация: 29.11.2011
Сообщений: 300
03.07.2013, 10:07
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
class TKartoteka
{
private:
    struct BinaryTree
    {
        char TitleComposition [30];
        char TitleAlbum [30];
        char Executor [30];
        char Genre[30];
        int Year;
        int Duration;
        long int ID;
        short num;
        long int GenerationID(){return(strlen(&TitleComposition[0]));};// ololo
        void PrintEl();
        BinaryTree* left;
        BinaryTree* right;
        BinaryTree(){ZeroMemory(this, sizeof(BinaryTree));};//проще обнулить все чем присваить каждому члену ноль
    }*pRoot;//надаже и данные каките добавить в класс кроме обьявлений структур и прочего
    void LoadFromFile();//мне кажеться логичнее from а не to (-:
    void SortPrint();
public:
 TKartoteka(){ZeroMemory(this, sizeof(TKartoteka));};
};
 
 
void TKartoteka::LoadFromFile()
{
 char fname[]="C://MyFile.txt";
 FILE* f;
    
 f=fopen(fname,"rt");
 while (!feof(f))
 {
  BinaryTree*np=new BinaryTree();
  fscanf(f, "%s %s %s %s %d %d %d ", np->TitleComposition, np->Executor, np->TitleAlbum, np->Genre, &np->Year, &np->Duration, &np->ID);
  if(!pRoot)//если картотека пустая значит это первая запись из файла 
  {
   pRoot=np;//и она будет корнем
  }
  else
  {
   BinaryTree*pCur=pRoot;//начинаем обход дерева с корня
someloop:
   if(pCur->ID<np->ID)//значит нужно влево
   {
    if(pCur->left)//слева уже есть дерево?
    {
     pCur=pCur->left;
     goto someloop;
    }
    else          //ах нету? значит будет
    {
     pCur->left=np;
    };
   }
   else            //или вправо
   {  
    if(pCur->right)//справа уже есть дерево?
    {
     pCur=pCur->right;
     goto someloop;
    }
    else          //ах нету? значит будет
    {
     pCur->right=np;
    };
   };
  };
  fclose(f);
 }
};
 
 
int main()
{
 TKartoteka kart;
 kart.LoadFromFile();
  _getch();
    return 0;
}
Я не тестировал, попробуй - работает/нет?

Добавлено через 44 секунды
ваще жуть если честно, обход дерева нужно тоже рекурсией делать, я поленился

Добавлено через 9 минут
fclose(а) за одну скобку переместить надо. Нестерпел, захотелось позапускать)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru