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

Сохранение всех входящих лексем(строк) в порядке поступления - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Комментарии к Системе счисления http://www.cyberforum.ru/cpp-beginners/thread17274.html
Кто может напишите комментарии к проге,просто по отдельности нет смысла спрашивать потому что очень много что не понятна! Из 2-ой в 10-ую и обратно #include<iostream.h> #include<math.h> #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<string.h> void main(void)
C++ Как создавать, записывать в файл Добрый вечер!:) Подскажите пожалуйста, как создавать, записывать в файл, ввод имён файлов с клавиатуры, читение данных из файла. Если можно с примерами:). http://www.cyberforum.ru/cpp-beginners/thread17212.html
C++ Разбить текстовый файл на страницы
Мне было задано 3 задачи две я решил, а вот одну не могу помогите пожалуйста. Постановка задачи: Я должен откыть текстовый файл, потом внести окраничения на количество строк в файле и программа должна разбить открытый файл на страници , чтобы на странице было столько строчек сколькоя задал, и разбивать до тех пор пока не кончится файл.Помогите
Функция ibhit C++
Вопрос прост: есть функция ibhit Но необходимо проверять не нажатие любой клавиши, а конкретной например пробела итп. нашёл KeyboardManager-но он видать пашет в скриптах лишь. И в результате какая функция проверяет нажата ли данная клавиша , и если нет просто продолжает работу.
C++ Хочет знать и лабу сдать и все понять http://www.cyberforum.ru/cpp-beginners/thread17130.html
объясните что я тут сделал в пьяном бреду! Желательно про коментировать каждую строку программы. #include <conio.h> #include <iostream.h> #include <stdio.h> #include <alloc.h> struct value { int a; value *b;
C++ Определить находятся ли данные прямые в общем положении Просьба решить или хотя бы подсказать как можно начать решать такую "простенькую"задачу: Прямая на плоскости может быть задана уравнением ax+by+c=0,где a и b одновременно не равны нулю. Пусть имеется n прямых (n>=3) заданных целыми коэфициентами a1,b1,c1, a2,b2,c3, ... an,bn, cn. Определить находятся ли данные прямые в общем положении, т.е. никакие две из них не совпадают и не паралельны и... подробнее

Показать сообщение отдельно
=TrappeR=
3 / 3 / 1
Регистрация: 02.12.2008
Сообщений: 11
03.12.2008, 16:18     Сохранение всех входящих лексем(строк) в порядке поступления
Уже ни первый день бьюсь над ошибкой в подпрограмме транслятора?
Цель подпрограммы: сохранение всех входящих лексем(строк) в порядке поступления.
Описание: в динамическом массиве сохраняются только ранее неизвестные лексем. А порядок поступления обеспечивает массив указателей, ссылаясь на динамический массив.
Реализация:
Код
struct entry {
    char importance[31];
};

struct entry *symtable =            /* Таблица символов. */
    (struct entry *)malloc(100);
char **term = (char **)malloc(999); /* Массив указателей */
int lastentry = 0;                  /* Последняя использованная
                                       позиция в таблице символов.  */
int lastterm = 0;                   /* Последняя введенная лексема. */

int Table::lookup(const char *s)
{   /* поиск строки s среди лексем в порядке последнего вхождения */
    for (int i = lastentry; i >= 0; i--)
        if (strcmp(symtable[i].importance, s) == 0)
            return i;
    return 0;
}

void insert(const char *s)
{	/* сохранение входящих лексем в порядке поступления. */
    lastentry++;
    lastterm++;
    int buf = lookup(s);
    if  (buf == 0) {
        /* сохраним лексему в динамическом массиве: */
        strcpy(symtable[lastentry].importance, s); */
        /* сохраним позицию лексемы во входном потоке */
        term[lastterm] = symtable[lastentry].importance;  // !!!возможна ошибка
    } else {  /* лексема уже встречалась */
        /* сохраним только позицию лексемы во входном потоке */
        term[lastterm] = symtable[buf].importance;  // !!!возможна ошибка!!!
    }
}

int getterm(char *s, int index)
{	/* присвоение строке s лексемы по индексу index */
    if (index >= 0 && index <= lastterm) {
        strcpy(s, term[index]);	// !!!ошибка возврата index==2 значения!!!
    return 1;
    }
    return 0;
}

Ошибка состоит в неправильном выводе именно третьего сохраненного значения, к примеру ввожу лексему “int” выводит каракули. Все предыдущие и последующие значения выводятся правильно!
Заранее благодарен. :drink:
Добавлено через 19 часов 42 минуты 54 секунды
Добавляю: ошибка состоит в неправильном выводе именно третьего сохраненного значения, к примеру ввожу лексему “int” выводит каракули. Все предыдущие и последующие значения выводятся правильно!
Заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru