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

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

Войти
Регистрация
Восстановить пароль
 
Restartuk
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 91
#1

Запись в файл слов, которые не повторяются - C++

05.01.2016, 20:33. Просмотров 165. Ответов 2
Метки нет (Все метки)

Добрый вечер, помогите с кодом. Как сделать чтобы считать с файла слова в односвязный список, сделать сортировку, и записать в другой файл слова кроме тех которые повторяются. Вот мой код:
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
void List::readFromFile(char *FileWay)
{
    FILE *file;
    int j = 0;
    file = fopen(FileWay,"r");
    if (file == NULL) {
        cout << "Error" << endl;
        return;
    }
    char masuv[100];
    while (!feof(file))
        fgets(masuv, 99, file);
    char *mass = strtok(masuv, " ,.-");
    while (mass != NULL) {
        add (mass);
        mass = strtok(NULL, " ,.-");
    }
    fclose(file);
}
void List::add(char *mass)
{
    Listitem *temp = new Listitem;
    strcpy_s(temp->word, 50, mass);
    temp->pNext = NULL;
    if (head != NULL) {
        tail->pNext = temp;
        tail = temp;
        counter++;
    }
    else{
        head = tail = temp;
        counter++;
    }
}
void List::WriteToFile ()
{
    Listitem *p=NULL;
    Listitem *temp=head;
    FILE *file;
    file=fopen("2.txt","w+");
    for (int i=0;i<GetCounter();i++){
        p=temp->pNext;
        if (strcmp(p->word,temp->word)==0)
            continue;
        else{
            fputs (p->word,file);
            fputs ("\n",file);
        }
        temp=temp->pNext;
    }
    fclose (file);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2016, 20:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в файл слов, которые не повторяются (C++):

Вывод слов, которые не повторяются в строке - C++
Есть Pascal'евский код program lb6; uses crt; var s,sl:string; i,d,j,k: integer; a:array of string; begin clrscr; ...

В строке слов из букв латинского алфавита найти слова, в которых нет букв, которые повторяются. - C++
В строке слов из букв латинского алфавита найти слова, в которых нет букв, которые повторяются.

Найти и вывести на экран все элементы, которые которые повторяются более N/2 раз - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int _tmain() { ifstream f (&quot;d:\\base1.txt&quot;); ...

Запись в файл ключевых слов програмы - C++
Дана программа на С++. Записать в выходной файл построчно все ключевые слова, встречающиеся в этой программе, указав количество...

Запись в файл. Функция ввода русских слов - C++
Код дал преподаватель, не реализуется функция Readline, выдает две ошибки: Ошибка 1 error LNK2005: &quot;char * __cdecl ReadLine(char...

Удалить из строки символы, которые повторяются - C++
Всем доброго дня) Вот такая вот проблемка - мне нужно из строки удалить символы которые повторяются. Например - &quot;ABCDEACCF&quot;, должно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Горелый
70 / 44 / 11
Регистрация: 20.03.2014
Сообщений: 186
05.01.2016, 20:52 #2
Вижу часть кода реализующего связанный список, код не весь.
Алгоритм действий такой
1. открываем файл для чтения
2. читаем слово
3. проходим весь список и определяем нет ли уже такого слова в списке
4. если нет то добавляем, переходим к шагу 2
5. если конец файла то переходим к сортировке списка

Предлагаю сортировать так
1. создать 2-й список
2. перебором находим в 1-м списке минимальное слово
3. вставляем его в новый список, удаляем со старого
4. повторяем шаги 2 и 3 пока 1-й список не опустеет

Описал метод сортировки простой вставкой
Немного неясен вот этот момент
Цитата Сообщение от Restartuk Посмотреть сообщение
слова кроме тех которые повторяются
Например: сыр вода стекло калоша сено сыр вода
нужно выводить
сыр вода сено калоша стекло
или
сено калоша стекло ???
Restartuk
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 91
05.01.2016, 21:03  [ТС] #3
сыр вода сено калоша стекло
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2016, 21:03
Привет! Вот еще темы с ответами:

Вывести слова которые повторяются и количество их повторения - C++
Ребят помогите реализовать следующую програмку: нужно чтоб когда на входе программы было например &quot;мама мыла раму раму мыла мама&quot;. ...

Получить количество элементов массива, которые не повторяются - C++
Задан массив А(n),некоторые элементы в нем могут встречаться несколько раз.Получить количество чисел,которые не повторяются.

Индексы элементов которые повторяются в двух массивах - C++
Помогите написать программу, которая получает на входе два массива, и выводит индексы тех елементов которые повотряются в двух массивах

Генерация массива целых случайных чисел, которые не повторяются - C++
Нужно получить числа от 0 до 15 в рандомном порядке, делаю так: BOOL messageClass::ClsOnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM...


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

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

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