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

динамическая память, работа с текстом. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки http://www.cyberforum.ru/cpp/thread135156.html
помогите пожалуйста У заданому словнику знайти групи слів, які записані однаковими літерами і відрізняються лише їх порядком, тобто перестановкою, наприклад: “РАНОК” – “КРОНА” В заданном словаре нацти группы слов, которые записаны одинаковыми буквами и отличаются только их порядком следования, т.е. перестановкой, например - “РАНОК” – “КРОНА” заранее благодарен
C++ Что есть "С++" в Visual Studio? Здравствуйте! Сама форум посещаю уже давно (но не регистрировалась до данного времени). Мне стало интересно... что же такое С++ в visual studio? Ну да ладно, писать консольные приложения - это, конечно, не плохо. Но вот допустим, что я хочу написать приложение с "интерфейсом"... Везде пишут, мол MFC уже устарело... типа, все пишут на QT или .NET (ну и так дальше). Но опять же - начну писать на... http://www.cyberforum.ru/cpp/thread135102.html
C++ Нужен радар для игры
У меня возникла необходимость в создании радара для игры. Я написал диалоговое приложение, в котором есть массив данных игровых объектов (координаты x,y, название и т.п.). Необходимо вывести окно радара, на котором выводить в виде точек эти объекты относительно игрока. Игрок может перемещаться, поворачиваться в разные стороны. Соответственно должно меняться отображение и на радаре. А также...
Программа со строками C++
Помогите кто чем может, нужно сделать вот это задание на Си: Пусть текстовый файл разбит на непустые строки. Написать программу для подсчета числа строк, которые начинаются и оканчиваются одной и той же литерой. Ввод и вывод осуществляется с помощью классов С++ Спасибо за ранее))) Если можете с комментами, то я эту тему понять не могу
C++ Найти мин и мах в каждой строке матрице и запомнить их http://www.cyberforum.ru/cpp/thread134974.html
Дана матрица 5х5 найти мин и мах в каждой строке и запомнить их. Помогите пожалуйста.
C++ Доска Гальтона Ребят, очень нужно..срочно решить две задачи на Си! Сама не в силах справиться...((( 1. Доска гальтона. изобразить на экране доску гальтона с движущимися по ней шариками. одновременно по доске должно двигаться несколько шариков. закончившие движение шарики останавливаются в нижней части доски.использовать датчик случайных чисел для выбора пути шарика при прохождении через... подробнее

Показать сообщение отдельно
beliuk
1 / 1 / 0
Регистрация: 13.02.2010
Сообщений: 12
25.05.2010, 16:01     динамическая память, работа с текстом.
Помогите, пожалуйста, найти ошибку. Программа считывает входной файл с текстом, создаёт два двусвязных списка чьи элементы - слова. В первой список поместить слова с четным кол-вом символов, во второй все остальные. Отсортировать слова по азбуке. Вывести в отдельные файлы.

Вроде всё компилируется, но ничего не выводит и не создаёт файлы . Помогите найти в чем проблема!
Спасибо больше за внимание!
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
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
FILE *in,*out1,*out2;
struct List
{
        List *Next,*Pre;
        char *S;
};
List *Head1,*Tail1;
List *Head2,*Tail2;
 
void add_L(int a,char *s)
{
        List *p=(List*)malloc(sizeof(List));
        p->S=(char*)malloc(strlen(s)*sizeof(char));
        p->S[0]=0;
        strcat(p->S,s);
        if (a==1)
           {
           if (Head1!=0)
              {
              Tail1->Next=p;
              p->Next=0;
              p->Pre=Tail1;
              Tail1=p;
              }
           else
              {
              p->Next=0;
              p->Pre=0;
              Tail1=p;
              Head1=p;
              }
           }
        if (a==2)
           {
           if (Head2!=0)
              {
              Tail2->Next=p;
              p->Next=0;
              p->Pre=Tail2;
              Tail2=p;
              }
           else
              {
              p->Next=0;
              p->Pre=0;
              Tail2=p;
              Head2=p;
              }
           }
}
 
void del_L(int a)
{
 if (a==1)
    {
    List *tek=Head1;
    while(tek!=0)
         {
         List *tmp=tek;
         tek=tek->Next;
         free(tmp->S);
         free(tmp);
         }
    }
 if (a==2)
    {
    List *tek=Head2;
    while(tek!=0)
         {
         List *tmp=tek;
         tek=tek->Next;
         free(tmp->S);
         free(tmp);
         }
    }
}
 
void sort_L(List *h,List *t)
{
List *og=t;
while(1)
    {
    List *tek=h;
    if (tek==0) break;
    List *tek2=h->Next;
    if (tek2==0) break;
    while(1)
         {
         if (strcmp(tek->S,tek2->S)>0)
            {
            char tmp1[1000];
            tmp1[0]=0;
            strcat(tmp1,tek->S);
            free(tek->S);
            tek->S=(char*)malloc(strlen(tek2->S)*sizeof(char));
            tek->S[0]=0;
            strcat(tek->S,tek2->S);
            free(tek2->S);
            tek2->S=(char*)malloc(strlen(tmp1)*sizeof(char));
            tek2->S[0]=0;
            strcat(tek2->S,tmp1);
            //List *tmp2=tek2;
            }
         if (tek2==og) break;
         tek2=tek2->Next;
         tek=tek->Next;
         }
    tek=h;
    og=og->Pre;
    if (tek==og) break;
    }
}
 
int main()
{
in=fopen("input.txt","r");
   while(1)
   {
   if (feof(in)) break;
   char tmp[1000];
   tmp[0]=0;
   fscanf(in,"%s",tmp);
   if ((strlen(tmp)&2)==1) add_L(1,tmp);
                      else add_L(2,tmp);
   }
fclose(in);
sort_L(Head1,Tail1);
sort_L(Head2,Tail2);
 
out1=fopen("out1.txt","w");
List *tek=Head1;
 
   while(1)
   {
   fprintf(out1,"%s\n",tek->S);
   tek=tek->Next;
   if (tek==0) break;
   }
 
fclose(out1);
out2=fopen("out2.txt","w");
tek=Head2;
 
   while(1)
   {
   fprintf(out2,"%s\n",tek->S);
   tek=tek->Next;
   if (tek==0) break;
   }
 
fclose(out2);
 
del_L(1);
del_L(2);
 
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru