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

C для начинающих

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

Работа с динамическими структурами, требуется корректировка - C (СИ)

15.04.2013, 18:42. Просмотров 450. Ответов 4
Метки нет (Все метки)

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
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <iostream>
 
typedef struct data
{
    char surname[128];
    char gorod[50];
    char ulitsa[50];
    int dom;
    int kvartira;
} Data;
 
typedef struct node
{
    Data data;
    node *next;
} Node;
 
typedef struct search
{
    Node *address;
    search *next;
} Search;
 
Node *Add(Node *Top, Data d)
{
    Node *newel = new Node;
    newel -> data = d;
    newel -> next = Top;
    return newel;
}
 
void Show(Node *Top)
{
    while (Top)
    {
        printf ("%s ", (Top -> data).surname);
        printf ("%s ", (Top -> data).gorod);
        printf ("%s ", (Top -> data).ulitsa);
        printf ("%d ", (Top -> data).dom);
        printf ("%d \n", (Top -> data).kvartira);
        Top = Top -> next;
    }
}
 
Node *read(Node *S)
{
    FILE*file;
    file = fopen ("Æèòåëè.txt", "r+");
    char surname[128];
    char gorod[20];
    char ulitsa[50];
    int dom;
    int kvartira;
    Data d;
    while (!feof(file))
    {
        fscanf (file, "%s", d.surname);
        fscanf (file, "%s", d.gorod);
        fscanf (file, "%s", d.ulitsa);
        fscanf (file, "%d", &(d.dom));
        fscanf (file, "%d", &(d.kvartira));
        S = Add(S,d);
    }
    return S;
}
 
 
Search *Find(Node *Top, Search *Begin, char* Name)
{
    Search *newel;
    while (Top)
    {
        if (strcmp (Top -> data.surname, Name) == 0)
        {
            newel = new Search;
            newel -> address = Top;
            newel -> next = Begin;
            Begin = newel;
        }
        Top = Top -> next;
    }
    return Begin;
}
 
void Show2 (Search *Top)
{
    while (Top)
    {
        printf("\nГ”Г*ìèëèè: \n\n");
        printf ("%s", (Top -> address -> data).surname);
        Top = Top -> next;
    }
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian" );
    Node* S=NULL;
    S=read(S);
    Show(S);
    fscanf(file, "%s", surname);
    Search* D=NULL;
    D=Find(S,D);
    Show2(D);
    return EXIT_SUCCESS;
}
По индивидуальному варианту написать функции:

1. Считывания данных из текстового файла
2. Добавления элемента в список
3. Поиска нужной информации в полученном списке.

Исходные данные хранятся в файле, который выглядит подобным образом:

Фамилия Город Улица Дом Квартира

Поиск по заданной фамилии.
Собственно, все уже сделано, но почему-то не работает. Я так понимаю, я закосячила вывод функции Show2 и со фсканфом тоже что-то неправильно... Помогите разобрать, пожалуйста, первые 2 функции работают исправно.

Добавлено через 6 часов 58 минут
Второй раз мне уже "отлично" помогли, спасибо большое, уже сама разобралась. Зачем существует форум для новичков, если в тему даже не заглядывают? Я понимаю, если бы я с нуля просила написать, так тут же уже целый код есть... Ладно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 18:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с динамическими структурами, требуется корректировка (C (СИ)):

Корректировка оператора scanf, а точнее корректировка индексов - C (СИ)
Я пытаюсь написать программу которая меняет индексы в операторе scanf на правильные индексы. То есть я сначала запоминаю переменные в...

Работа со списочными структурами - C (СИ)
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;windows.h&gt; #include &lt;ctime&gt; using...

Работа со структурами через указатели - C (СИ)
Приветствую, форумчане. Не могу разобраться в следующем: есть массив структур. В структуре два элемента: строка и переменная, которая...

Работа со структурами: Телефонный справочник - C (СИ)
Помогите пожалуйста реализовать программу с использованием структур. Телефонный справочник. Составить программу формирования данных об...

Работа со структурами: сортировка массива студентов - C (СИ)
10.1. Вводится массив структур Student. У каждого студента есть, как минимум, имя и массив из 5 оценок. Необходимо сгруппировать массив...

Работа с "двойными" структурами - C (СИ)
Добрый день, не много запутался со структурами. Как записать в массив &quot;key&quot; символ, чтобы просто записало в структуру bigramm? И не понимаю...

4
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
16.04.2013, 00:55 #2
Цитата Сообщение от lillamymla Посмотреть сообщение
Добавлено через 6 часов 58 минут
Второй раз мне уже "отлично" помогли, спасибо большое, уже сама разобралась. Зачем существует форум для новичков, если в тему даже не заглядывают? Я понимаю, если бы я с нуля просила написать, так тут же уже целый код есть... Ладно.

Не по теме:

Не всегда найдутся помощники ведь, бывает и что кто заходит не знает, а кто знает не заходит

0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
16.04.2013, 09:23 #3
Вы написали программу на смеси языков С и С++,что вы еще хотите?Вы сначала определитесь с топиком, может вам в С++ нужно?
И еще,ответьте на вопрос, чем является Node, Data, Search? Может не тем, что вы думали?

Добавлено через 1 час 8 минут
Вопрос снимается, не досмотрел. Тем не менее, определитесь с языком вначале.
И еще, вы используете динамическое выделение памяти, но потом нигде не чистите за собой мусор, так тоже нельзя.
0
lillamymla
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 32
16.04.2013, 18:27  [ТС] #4
Цитата Сообщение от dane.yeah Посмотреть сообщение
Не всегда найдутся помощники ведь, бывает и что кто заходит не знает, а кто знает не заходит
Может быть, так и есть. Эх...

Цитата Сообщение от vua72 Посмотреть сообщение
Тем не менее, определитесь с языком вначале.
Определенно, С. Из С++ используется библиотека iostream и функция setlocale, но только для удобства (компилятор, который позволяет смешение языков, не читает русский язык без нее).

Цитата Сообщение от vua72 Посмотреть сообщение
И еще, вы используете динамическое выделение памяти, но потом нигде не чистите за собой мусор, так тоже нельзя.
Я уже разобралась, спасибо.
0
dane.yeah
15 / 15 / 1
Регистрация: 08.04.2012
Сообщений: 133
16.04.2013, 20:48 #5
Цитата Сообщение от lillamymla Посмотреть сообщение
Определенно, С. Из С++ используется библиотека iostream и функция setlocale, но только для удобства (компилятор, который позволяет смешение языков, не читает русский язык без нее).
wxDev
а к нему g++rus и gccrus и всё заработает)
0
16.04.2013, 20:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2013, 20:48
Привет! Вот еще темы с ответами:

Корректировка слов в файле - C (СИ)
Есть вопрос. Как в файле корректировать слова, как например в Ворде. То есть у меня есть слово vvodim, и я ищю в файле это слово с...

Корректировка и замена слов в файле - C (СИ)
Помогите написать программу которая будет кооретировать файле. пример: &quot;Дан файл с текстом: &quot;go to gotog joke rule nuke pront&quot; А...

Вычисление факториала - корректировка кода - C (СИ)
Чего здесь не хватает? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; void main(){ int n,i,k; printf (&quot;Vedite chysclo-&gt;&quot;); if...

Работа с динамическими структурами - Assembler
Нужно написать программу,создающую динамическую структуру и осуществляющую поиск в ней,с функцией добавления элемента в список.Надеюсь на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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