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

Подскажите в чем ошибка?почему ничего не делает? - C++

Восстановить пароль Регистрация
 
Ксения777
0 / 0 / 0
Регистрация: 28.11.2011
Сообщений: 14
12.06.2012, 16:45     Подскажите в чем ошибка?почему ничего не делает? #1
Тема односвязные линейные списки. Дан текстовый файл, компонентами которого являются целые числа. Удалить из файла группы подряд идущих одинаковых чисел.
Код
#include <fstream> 
#include <iostream> 
#include <locale.h> 
#include <stdlib.h> 
using namespace std; 
struct LIST { 
int number; 
LIST *next; 
}; 
//Функция чтения данных и занесения их в создаваемый список: 
LIST *read_list(LIST *lst) 
{ 
  LIST *p; 
  int t; 
  ifstream f("1.txt"); 
  if (f) //Если файл существует 
  { 
      f>>t; 
  if (!f.eof())//Если файл не пуст 
      { 
         lst=new LIST; 
         p=lst; 
         p->number=t; 
     f>>t; 
         while (!f.eof())//Пока не конец файла 
         { 
          p->next=new LIST; 
          p=p->next; 
          p->number=t; 
      f>>t; 
         } 
         p->next=NULL; 
     }  
     else  
       cout<<"Файл пустой"<<'\n'; 
  } 
  else  
  { 
    cout<<"Файл отсутствует"<<'\n'; 
    exit(1); 
  } 
  return lst; 
}

  LIST *del_group_element(LIST *lst) 
{ 
  LIST *p1=lst;
  
 if ( p1 == 0) return lst;
  
  do
  {
    int num = p1->number;
    LIST *prev = p1;
    LIST *pos  = p1->next;
    int delete_flag = 0;
    while (pos != 0)
    {
      if (pos->number == num)
      {
        LIST* tmp = pos;
        pos = pos->next;
        prev->next = pos;
        delete tmp;
        delete_flag = 1;
      }
      else
      {
        prev = pos;
        pos  = pos->next;
      }
    }

    if (delete_flag)
    {
      LIST* tmp = p1;        
      p1 = p1->next;
      delete tmp;
    }
    else
      p1 = p1->next;
 
  } while (p1 != 0);
  //return lst;
}

void write_list(LIST *lst) 
{ 
  ofstream f("2.txt"); 
  LIST *p1=lst,*pred; 
  p1=lst;
  pred=p1;
  while (p1->next!=NULL)
  {    
	  f<<p1->number;
    pred=p1;
	p1=p1->next;
  }
  f.close();
} 
// Основная функция: 
int main() 
{ 
  LIST *lst=NULL; 
  int n; 
  setlocale(LC_CTYPE,""); 
  
  lst=read_list(lst); 
  lst=del_group_element(lst); 
  write_list(lst); 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2012, 16:45     Подскажите в чем ошибка?почему ничего не делает?
Посмотрите здесь:

C++ Подскажите в чем ошибка (С++)
в чем ошибка? почему не работает? C++
C++ Подскажите в чем ошибка
подскажите в чем ошибка C++
C++ Подскажите, в чем ошибка
C++ Подскажите в чем ошибка
C++ Подскажите в чем ошибка
Подскажите, в чем ошибка C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 11:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru