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

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

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

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

10.09.2011, 19:06. Просмотров 349. Ответов 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 Может в нём косяк?
Миниатюры
Не нормально зацикливается Do  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2011, 19:06     Не нормально зацикливается Do
Посмотрите здесь:

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

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

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

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

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

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

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

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

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

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


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

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

Добавлено через 3 минуты
Хм...... я очень удивлен, помогло...
Хотя там реально до конца файла далеко. Спасибо!
Ответ Создать тему
Опции темы

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