Я получил ошибку о получает функцию и кучу буфера в коде C - PullRequest
0 голосов
/ 26 сентября 2018
void main() {

char command;
element e;
TreeNode *root = NULL;
TreeNode *tmp;

do {
    help();
    command = getchar();
    fflush(stdin);
    switch (command) {
    case 'i':
        printf("Word:");
        gets(e.word);
        printf("Meaning:");
        gets(e.meaning);
        insert_node(&root, e);
        break;
    case 'd':
        printf("Word:");
        gets(e.word);
        delete_node(&root, e);
        break;
    case'p':
        display(root);
        printf("\n");
        break;
    case's':
        printf("Word:");
        gets(e.word);
        tmp = search(root, e);
        if (tmp != NULL)
            printf("Meaning:%s\n", e.meaning);
        break;

    }
} while (command != 'q');
}

Это основной код, а не весь код.

Я изучил структуру данных и попытался создать словарь с помощью поиска в двоичном дереве, но если я запускаю этот код, первый получает ошибку, но другой gets() не разбиваются, а также цвет первого отличается.

код ошибки предупреждает C4013

Я знаю, чтокод ошибки не определяет конкретную функцию, но я уже написал файлы заголовков, stdio.h и stdlib.h.

Другая ошибка - буфер ввода, когда я запускаю этот код, слово и значение смешиваются.

Я слышал, что эта ошибка произошла в буфере ввода, и я знаю ее

, поэтому я закодировал // fflush (stdin) после //command = getchar ();

но ошибка не устранена

Я хочу понять, почему это происходит, и решить проблему благодаря

1 Ответ

0 голосов
/ 26 сентября 2018

Код ошибки C4013 в MS Visual Studio означает 'function' undefined; assuming extern returning int.

Это предупреждение, поэтому при запуске программы оказывается, что функция, которая была неопределена, требует чего-то другого, кроме того, что вы передаете, или повторяетчто-то еще, кроме int, и затем происходит сбой.

Итак, вы должны сначала исправить это предупреждение: выяснить, на какую функцию жалуется компилятор, а затем правильно определить и вызвать ее.

...