Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Lupus
23 / 23 / 4
Регистрация: 13.03.2011
Сообщений: 326
#1

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

10.09.2011, 19:06. Просмотров 379. Ответов 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 Может в нём косяк?
http://www.cyberforum.ru/cpp-beginners/thread60065.html
0
Миниатюры
Не нормально зацикливается Do  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2011, 19:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не нормально зацикливается Do (C++):

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

Программа зацикливается
всё описание я зделал в коде #include &lt;iostream&gt; #include &lt;cstring&gt;...

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

Программа зацикливается
void __fastcall TForm1::Button1Click(TObject *Sender) { int k; float...

Зацикливается стек
Реализация простой базы данных на базе класса стек (на основе связанного...

2
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
10.09.2011, 19:40 #2
Почему ты думаешь, что fiT.get() возвращает char? Если достигается конец файла, то эьа ситуация не обрабатывается.
1
Lupus
23 / 23 / 4
Регистрация: 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
Привет! Вот еще темы с решениями:

Программа зацикливается
Программа зацикливается после ввода размеров массива. Подскажите пожалуйста,...

Почему зацикливается?
Такая программка: #include &lt;conio.h&gt; #include &lt;iostream&gt; #include...

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

Почему зацикливается???
Доброе время суток. Прошу объяснить или дать ссылку где такое описывается....


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

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

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