Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 1
1

почему в функции add не работает gets_s?

15.01.2017, 21:56. Просмотров 446. Ответов 2
Метки c++ (Все метки)

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/*
Записи в линейном списке содержат ключевое поле типа *char(строка символов).
Сформировать двунаправленный список. Удалить К элементов из конца списка.
Добавить элемент после элемента с заданным ключом.
*/
#include<iostream>
#include<fstream>
using namespace std;
struct slark
{
    char M[256];
    slark *next, *prev;
};
slark * sbr(int n);
slark * gen(char ms[256]);
void del(slark *el, int n);
void add(slark *el);
void print(slark *et);
 
 
 
#include"def.h"
void main()
{
    setlocale(LC_ALL, "rus");
    int n;
    slark *el = new slark;
    cout << "Введите количество элемент === ";
    cin >> n;
    el = sbr(n);
    print(el);
    del(el,n);
    print(el);
    add(el);
    print(el);
    system("pause");
}
 
 
#include"def.h"
slark * sbr(int n)
{
    slark *el, *el2;
    char ms[256];
    for (int k = 0;k < n + 1;k++)
    {
        if (k!=0)
        cout << "Ввод в " << n - k + 1 << " элемент" << endl;
        gets_s(ms);
        el = gen(ms);
        if (k > 1)
        {
            el->next = el2;
            el2->prev = el;
        }
        if (k > 0)
        {
            el2 = el;
        }
        else
        {
            delete el;
        }
    }
    return (el);
}
slark * gen(char ms[256])
{
    slark *el;
    el = (slark*)malloc(sizeof(slark));
    strcpy(el->M,ms);
    el->next = NULL;
    el->prev = NULL;
    return(el);
}
void del(slark *el, int n)
{
    slark *e = el, *e1, *end;
    int k;
    cout << endl << "Введите К === ";
    cin >> k;
    for (int t = 0;t < n;t++)
    {
        if (t > n - k)
        {
            e1 = e;
            e = e->next;
            delete e1;
        }
        else
        {
            if (t == n - k)
            {
                end = e;
            }
            e = e->next;
        }
    }
    end->next = NULL;
}
void add(slark *el)
{
    slark *e = el, *e1, *e2;
    char pr[256], n[256];
    cout<< endl << "Введите ключ === ";
    gets_s(pr);cout << endl;
    while (e != NULL)
    {
        if (strcmp(pr, e->M) == 0)
        {
            cout << "Ввод в новый элемент" << endl;
            gets_s(n);
            e1 = gen(n);
            e2 = e->next;
            e->next = e1;
            e1->prev = e;
            e1->next = e2;
            e2->prev = e1;
            break;
        }
        else
        {
            e = e->next;
        }
    }
}
void print(slark *et)
{
    cout << endl << endl;
    int n = 1;
    slark *new_elem = et;
    while (new_elem != NULL)
    {
        cout << "Вывод № " << n << " : " << new_elem->M << endl;
        n++;
        new_elem = new_elem->next;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2017, 21:56
Ответы с готовыми решениями:

Почему не работает Controls.Add()?
Всем добрый день. Я не так давно начал изучать C# и вот появилась проблема, которую я не смог...

Почему не работает метод Headers.Add?
не могу понять в чем поблема

Почему-то ADD FOREIGN KEY при ALTER TABLE не работает
После того как создал таблицы CREATE TABLE Customers ( CustomerID CHAR(5) NOT...

После компиляции dll в vc++ 2008 имя функции вот такое ?Add@MyMathFuncs@MathFuncs@@SAJJ@Z. Почему?
Я ожидал имя в dll Add@MyMathFuncs@MathFuncs Но не такое ?Add@MyMathFuncs@MathFuncs@@SAJJ@Z Вот...

2
nd2
3328 / 2737 / 1223
Регистрация: 29.01.2016
Сообщений: 9,258
15.01.2017, 22:08 2
Распространенные ошибки
0
Модератор
Эксперт С++
9508 / 8166 / 4991
Регистрация: 18.12.2011
Сообщений: 21,788
15.01.2017, 22:29 3
Справка по функциям вызывается нажатием клавиши F1:
char *gets_s(
char *buffer,
size_t sizeInCharacters);
[out] buffer
Storage location for input string.

[in] sizeInCharacters
The size of the buffer.
И где в Вашем коде sizeInCharacters?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2017, 22:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не работает gets_s()
Почему не работает gets_s()? Как исправить? Работаю в Visual Studio 2015. #include &lt;iostream&gt;...

Почему git add . и git add * это плохо? И как тогда быть?
Вопрос по гиту, почему git add . и git add * это плохо? и как тогда быть?

Функции gets_s, printf_s и другие с подчеркиванием
Я так понимаю, что все данные функции появились в Visual Studio и являются улучшенным вариантом их...

Выделение памяти под строку и использование функции gets_s
Не могу понять как динамически выделять память под строки в c++, жалуется функция gets_s. ...


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

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

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