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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lupus
22 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 326
#1

Не нормально зацикливается Do - C++

10.09.2011, 19:06. Просмотров 352. Ответов 2
Метки нет (Все метки)

Нужно написать процедуру, которая сравнивает каждое слово из текстового файла с каждым словом из словаря (слова уже забиты в список) и переписывает весь текстовый файл в web-страницу, выделяя слова, которые есть в словаре, жирным и курсивом. Собственно процедура написана, но после определенного момента (когда счётчик k равен 272) вдруг происходит закливание в цикле do.
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
void Spisok::Vyvod ()
{
  node *t;
  char buff[256], ch;
  int i, k=0;
  fstream fiT("D:\\user\\bc31\\bc31\\bin\\test.txt", fstream::in);
  fstream fo("D:\\user\\bc31\\bc31\\bin\\index.html", fstream::out);
 
 
  fo << "<html><title>Stranica 1</title><body>\n";
 
  while (!fiT.eof())
  {
        t = (*phead).sled;
        i = 0;
 
        while( isspace( ch = fiT.get() ) )
             {
           if (ch == '\n') fo << "<br>\n";
           else fo << ch;
             }
 
        do                   //   вот тутс
        {
          buff[i++] = ch;
          //cout << i << endl;
        }
        while ( !isspace( ch = fiT.get() ));
        buff[i] = 0;
 
        while (t!=NULL)
        { 
          if (stricmp(buff, (*t).elem)==0)  
          {
              fo << "<b><i>" << buff << "</i></b>";
              if (ch == '\n') fo << "<br>\n";
              else fo << ch;
                  break;
              }
          t = (*t).sled;
          //cout << "oshibko!" << endl;
        }
        if (t==NULL)
        {
          fo << buff;
          if (ch == '\n') fo << "<br>\n";
          else fo << ch;
        }
        cout << k++ << endl;
  }
  fiT.close();
  fo << "</body></html>";
  fo.close();
}
При чём, это не зависит от того, какой символ я считываю из файла.
При попытке посмотреть i или ch в цикле выходит ошибко (см ниже).
Похоже, что что-то переполняется, а что, понять так и не могу

P.S. Пишу в BC3.1 Может в нём косяк?
0
Миниатюры
Не нормально зацикливается Do  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2011, 19:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не нормально зацикливается Do (C++):

Почему зацикливается? - C++
Такая программка: #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; void strCon(char...

Зацикливается программа - C++
Нужно сделать стек из элементов и вывести все положительные значения. Программа на этапе принта зацикливается, посмотрите, что не так: ...

программа зацикливается - C++
помогите скажите пожалуйста почему моя программа зацикливается #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; ...

Multimap зацикливается - C++
Всем добрый вечер, Помогите, пожалуйста разобраться с зацикленным &quot;Not found&quot;. Поиск по названию блюда происходит нормально, а вот...

Зацикливается деструктор - C++
Здравствуйте :) Очень прошу ограничиться ответом на мой вопрос, если Вы его знаете, и приберечь на другой раз советы использовать готовые...

Программа зацикливается - C++
всё описание я зделал в коде #include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;string&gt; using namespace std; int main()...

2
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
10.09.2011, 19:40 #2
Почему ты думаешь, что fiT.get() возвращает char? Если достигается конец файла, то эьа ситуация не обрабатывается.
1
Lupus
22 / 22 / 1
Регистрация: 13.03.2011
Сообщений: 326
10.09.2011, 20:15  [ТС] #3
Цитата Сообщение от Deviaphan Посмотреть сообщение
Почему ты думаешь, что fiT.get() возвращает char? Если достигается конец файла, то эьа ситуация не обрабатывается.
Условие конечно добавлю, но там точно не конец файла. Содержимое файла менял, а зацикливание всё равно на 272ом k.

Добавлено через 3 минуты
Хм...... я очень удивлен, помогло...
Хотя там реально до конца файла далеко. Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2011, 20:15
Привет! Вот еще темы с ответами:

Зацикливается стек - C++
Реализация простой базы данных на базе класса стек (на основе связанного списка). Зацикливается на вводе фамилии. головной: ...

Программа зацикливается - C++
Программа зацикливается после ввода размеров массива. Подскажите пожалуйста, где ошибка. #include &lt;iostream&gt; void inn(int **, int,...

Почему зацикливается??? - C++
Доброе время суток. Прошу объяснить или дать ссылку где такое описывается. #include &lt;iostream&gt; using namespace std; int main(){ ...

Программа зацикливается - C++
void __fastcall TForm1::Button1Click(TObject *Sender) { int k; float a,sum,x; a=StrToFloat(Edit1-&gt;Text); k=1; sum=0; ...


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

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

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