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

Программа для создания словаря - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как заставить работать <algorithm> http://www.cyberforum.ru/cpp-beginners/thread630309.html
Здравствуйте! У меня есть программа которая vector <int> найдет номер максимального элемента! vector <int>::const_iterator MAX = max_element (myvector.begin(), myvector.end()); cout << "Индекс этого элемента " << MAX - myvector.begin() << endl; Только вот мне нужно искать не в INT а в DOUBLE! А с DOUBLE max_element не работает! Не подскажите как сделать чтобы работало!? Может какие другие...
C++ Вызов функции с неизвестным именем Я знаю, что напрямую нельзя вызвать функцию по имени, которое хранится в char* но, может как-то возможно сделать "финт-ушами"? Только заранее говорю, что имя функции вообще неизвестно http://www.cyberforum.ru/cpp-beginners/thread630308.html
Проверка на повторный ввод элемента массива C++
Вот код во время проверки на повторный ввод элемента массива получается бессконечный цыкл и еще одна проблема при проверке на ввод чисел тоже запускается бессконечный цикл.Помогите пож. int i, j, k=0; cout<<"Введите первое множество"<<endl; do{ cout<<"Количество элементов = "; cin>>n; if(cin.good()== false) {
C++ Случайные числа
Подскажите функцию(или класс а вней функцию) для генерирования случайных чисел аналог Random.Next() C#
C++ Ввод\вывод в файл http://www.cyberforum.ru/cpp-beginners/thread630269.html
Здравствуйте! Подскажите пожалуйста, как ПРАВИЛЬНО организовать ввод и вывод в файл в С++.И ещё,подскажите как в файле при чтении или записи в него переходить на следующую строку.Заранее спасибо!
C++ Идеально сбалансированное дерево Интересует как работает этот кусок кода) по идеи Create(&tmp->right, nr); сюда компилятор никогда не доберется? и еще как она выходит из цикла без return; void Create(TREE **current, int n) { int count = 0; if(n==0) *current=NULL; else { подробнее

Показать сообщение отдельно
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
30.07.2012, 19:51     Программа для создания словаря
Быть может Вы дадите условия возникновения ошибки?
Или хотя бы саму ошибку?

На мой взгляд, код вообще очень странный.
Советую вышеуказанную ф-ию переписать с нуля.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
                if(correct(id_of_word))
                {
                ///////////////////////////////////
                string = new char[strlen(word) + 1];
 
                strcpy(string,word);
 
                this->words.push_back(string);
 
                delete []string;
 
                //////////////////////////////////
                string = new char[strlen(id_of_word) + 1];
 
                strcpy(string,id_of_word);
 
                this->ID.push_back(string);
 
                delete []string;
                //////////////////////////////////
                Amount++;
                }
Зачем копировать строки?! При push_back они по любому скопируются.

А вот над этим Вам явно стоит немного больше подумать:

C++
1
2
3
4
5
6
char id_of_word[8] = {0}
// ...
cout << "Значения должны быть в диапазоне от 0 до 255" << endl;
cout << "Пример:125.0.12.369" << endl;
//...
cin >> id_of_word;
Вы в восьмисимвольный массив пытаетесь положить (судя хотя бы по примеру) 12 символов.

Далее - еще интереснее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool Dictionary::correct(char id[])
{
    for(int i = 0;i < 2*COUNT_OF_BYTES - 1;i++)
    {
        if(id[i] < 0 || id[i] > 255)
            return false;
 
        if(!(id[i++] != '.'))
            return false;
    }
 
    return true;
}
Вы ввели ряд цифр в символьный массив => должны проверить, а правда ли каждый символ - цифра или точка? А вы что делаете?

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