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

Построить однонаправленный список из элементов файла - C++

Восстановить пароль Регистрация
 
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
26.05.2014, 10:58     Построить однонаправленный список из элементов файла #1
Помогите составить программу, которая строит однонаправленный список из элементов файла. Элементы списка вывести на экран.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
1Вирт1
55 / 53 / 5
Регистрация: 25.08.2011
Сообщений: 428
26.05.2014, 11:10     Построить однонаправленный список из элементов файла #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
#include <list>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
  list<int> l;
  ifstream file;
  file.open("list.txt", ios::app);
  copy(istream_iterator<int>(file), istream_iterator<int>(), back_inserter(l));
  copy(l.begin(), l.end(), ostream_iterator<int>(cout, " "));
  cout << endl;
  return 0;
}
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
26.05.2014, 11:18  [ТС]     Построить однонаправленный список из элементов файла #3
1Вирт1, А можно с использованием структуры?
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
26.05.2014, 12:30  [ТС]     Построить однонаправленный список из элементов файла #4
1Вирт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
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <ComObj.hpp>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
struct Spisok
{
    int x;
    Spisok *next;
};
typedef Spisok *PSpisok;
PSpisok Beg, End, p;
 
TForm1 *Form1;
 
void add (PSpisok &O, int x)
{
    PSpisok NewSpisok;
    NewSpisok = new Spisok;
    NewSpisok -> x = x;
    NewSpisok -> next = NULL;
    if (End)
    End -> next = NewSpisok;
    End = NewSpisok;
    if (Beg == NULL)
    Beg = End;
}
 
void vuvod(PSpisok Beg)
{
    PSpisok q = Beg;
    int j = 0;
    while (q != NULL)
    {
        Form1 -> StringGrid2 -> Cells[j][0] = IntToStr(q -> x);
        q = q -> next;
        j++;
    }
};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int x;
    int i;
    x = StrToInt(Edit1 -> Text);
    add(p, x);
    StringGrid1 -> Cells[i][0] = IntToStr(x);
    i++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    vuvod (Beg);
}
//---------------------------------------------------------------------------
Добавлено через 34 минуты
Переделал вот так:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <ComObj.hpp>
#pragma hdrstop
#include "Unit1.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
struct Spisok
{
    int x;
    Spisok *next;
};
typedef Spisok *PSpisok;
PSpisok Beg, End, p;
 
TForm1 *Form1;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    Variant var_Excel, var_Sheet;
    int Row_Counter = 0, Column_Counter = 0, Max_Column = 2, Max_Row = 15;
    WideString st;
    if (!OpenDialog1->Execute()) return;
 
    Edit2 -> Text = OpenDialog1 -> FileName;
    st = Edit2 -> Text;
 
    var_Excel = CreateOleObject("Excel.Application");
    var_Excel.OlePropertyGet("Application").OlePropertyGet("Workbooks").OleProcedure("Open", st);
    var_Excel.OlePropertySet("Visible", false);
    var_Sheet = var_Excel.OlePropertyGet("ActiveSheet");
 
    for (Row_Counter; Row_Counter <= Max_Row; Row_Counter++)
    {
      for (Column_Counter; Column_Counter <= Max_Column; Column_Counter++)
          {
           StringGrid2->Cells[Column_Counter][Row_Counter] =
               var_Sheet.OlePropertyGet("Cells").OlePropertyGet("Item", Row_Counter + 1, Column_Counter + 1);
          }
          Column_Counter = 0;
    }
 
    var_Excel.OlePropertyGet("Application").OleProcedure("Quit");
    var_Sheet = Unassigned;
    var_Excel = Unassigned;
}
//---------------------------------------------------------------------------
Но почему то выводит только первые 3 элемента. Подскажите в чем ошибка?
Yandex
Объявления
26.05.2014, 12:30     Построить однонаправленный список из элементов файла
Ответ Создать тему
Опции темы

Текущее время: 16:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru