Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2010, 20:12   #1
sabaton
Пользователь
 
Регистрация: 14.03.2010
Сообщений: 25
Вопрос Список, выбивает ошибку, не работает

Условие: Нуно написать прогу, которая считывает с файла текст, сортирует его и записывает в другой файл, и делает при этом словарь....И в исходном файле должен быть словарь слов, и возле каждого слова сколько раз оно повторяеться в тексте...Я использовал список

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
class List {
    public:
    struct node
       {
       char word[80];
       int kil;
       node *next;
       };
    node *start;
    int add (char s[80],int ne){
        int i;
        node *buf,*peredbuf,*k;
        buf=peredbuf=NULL;
        if (start==NULL)
           {
           buf=(node*)malloc(sizeof(node));
           if (buf==NULL) {printf ("Error memory"); return 0;}
           start=buf;
           buf->kil=1;
           strcpy (buf->word,s);
           buf->next==NULL;
           return 1;
           }
        buf=start;
        while ((buf->next)&&(strcmp(buf->word,s)<0))
           {
           peredbuf=buf;
           buf=buf->next;
           }

        if (strcmp(buf->word,s)==0)
           {
           if (ne==1) return 1;
           buf->kil++;
           return 1;
           }
        if (strcmp(buf->word,s)>0)
           {
           buf=(node*)malloc(sizeof(node));
           if (buf==NULL) {printf ("Error memory"); return 0;}
           buf->kil=1;
           buf->next=peredbuf->next;
           peredbuf->next=buf;
           strcpy (buf->word,s);
           return 1;
           }
        if (buf->next==0)
           {
           peredbuf=buf;
           buf=(node*)malloc(sizeof(node));
           if (buf==NULL) {printf ("Error memory"); return 0;}
           buf->kil=1;
           peredbuf->next=buf;
           buf->next==NULL;
           strcpy (buf->word,s);
           return 1;
           }
        free(buf);
}
    int print(){
        FILE *out;
        out=fopen("output.txt","wt");
        node *buf;
        buf=start;
        while (buf)
           {
           fprintf (out,"%s   %i\n",buf->word,buf->kil);
           buf=buf->next;
           if (buf==NULL) break;
           }
        fclose (out);
        }
};
        
int main(){
    List l;
    l.start=NULL;
    char s[80];
    int j,k,f,ne=0;
    FILE *in,*out;
    in=fopen("input.txt","rt");
    if (in==NULL) {printf ("File error"); system ("pause"); return 0;}
    while (!feof(in))
       {
       fscanf (in,"%s",s);
       k=strlen(s)-1;
       if ((s[k]<'a')||(s[k]>'z'))
          s[k]='\0';
       if (feof(in)) ne=1;
       f=l.add(s,ne);
       if (f==0) return 0;
       }
    l.print();
    fclose (in);
    system ("pause");
}
sabaton вне форума Ответить с цитированием
Старый 28.03.2010, 19:12   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
#include <telepat.h>
telepat.h: No such file or directory.
NiCola999 вне форума Ответить с цитированием
Старый 28.03.2010, 19:41   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Я использовал список
Ииииии?.....
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 28.03.2010, 20:26   #4
sabaton
Пользователь
 
Регистрация: 14.03.2010
Сообщений: 25
По умолчанию

NiCola999, что за #include <telepat.h> ? Оно всеравно с ним не работает...
sabaton вне форума Ответить с цитированием
Старый 28.03.2010, 20:34   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Цитата:
NiCola999, что за #include <telepat.h> ? Оно всеравно с ним не работает...
это я так намекнул на то, что мы не телепаты, чтобы знать где твои ошибки. Показывай что выдает компилятор...
NiCola999 вне форума Ответить с цитированием
Старый 28.03.2010, 20:59   #6
sabaton
Пользователь
 
Регистрация: 14.03.2010
Сообщений: 25
По умолчанию

Безымянный.png
Вот ошибка, я не знаю чё с ней делать...
sabaton вне форума Ответить с цитированием
Старый 28.03.2010, 23:20   #7
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

подскажу тебе пару способов как искать ошибки...
1) с помощью отладчика
2) ставишь после подозрительной строчки
Код:
cin.get();
таким образом останавливаешь программу, если осановилась значит кусок кода до этой строчки выполнился успешно
3) закомментируй все методы, раскомментируй по одному и проверяй

скорей всего где-нибудь ошибка сегментации
NiCola999 вне форума Ответить с цитированием
Старый 28.03.2010, 23:34   #8
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Ох... Стандартный C++ в сочетании с malloc и прочим...
Может, лучше воспользуетесь std::string и new/delete?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 21.09.2010, 20:33   #9
sabaton
Пользователь
 
Регистрация: 14.03.2010
Сообщений: 25
По умолчанию

спасибо но уже решил.Просто нужно было запустить в режиме совместимости с ХП и от имени администратора...У меня просто 7..А на ХП все пашет
sabaton вне форума Ответить с цитированием
Старый 27.09.2010, 23:29   #10
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Цитата:
Сообщение от sabaton Посмотреть сообщение
NiCola999, что за #include <telepat.h> ? Оно всеравно с ним не работает...
Поздравляю, вы в баше :
http://www.google.ru/search?sclient=...%22&btnG=Поиск
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выдает ошибку но работает.Что не так? Студло Помощь студентам 1 01.03.2010 09:12
помогите найти ошибку в програме не работает в делфи SYL@R Помощь студентам 4 04.07.2008 12:28