0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 34
1

strncpy_s

06.02.2014, 15:34. Показов 2973. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! При компиляции на линуксе возникла ошибка:
error: 'strncpy_s' was not declared in this scope
Куски кода:
C++
1
strncpy_s(username, 40, text + 1, accend - 1);
...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char days[10];
 
        if (text[1] == ' ')
            strncpy_s(days, 10, text, 1);
        else if (text[2] == ' ')
            strncpy_s(days, 10, text, 2);
        else if (text[3] == ' ')
            strncpy_s(days, 10, text, 3);
        else
        {
            message_send_text(c, message_type_info, c, "используйте: /lock +<аккаунт> [количество дней] <причина>");
            return 0;
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2014, 15:34
Ответы с готовыми решениями:

Функция strncpy_s - объяснить аргументы функции
strncpy_s(str1, x, str2, y); правильно ли я понимаю что: str1 - куда копируем; str2 - что...


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

Или воспользуйтесь поиском по форуму:
3
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
06.02.2014, 16:57 2
Обычная strncpy недостаточно стилномодномолодёжная?
0
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 34
06.02.2014, 17:23  [ТС] 3
Если бы у меня получилось скомпилировать с
C++
1
strncpy
, я бы давно скомпилировал. При этом возникает ошибка: error C2660: strncpy: функция не принимает 4 аргументов
это если изменить:
C++
1
strncpy_s(username, 40, text + 1, accend - 1);
на
C++
1
strncpy(username, 40, text + 1, accend - 1);
0
...
1906 / 1326 / 965
Регистрация: 12.02.2013
Сообщений: 2,171
06.02.2014, 17:41 4
XOM91K, так правильно, ведь stncpy принимает 3 аргумента, а не 4. И вообще, если вы пишите кроссплатформенный код, то используйте только те функции, которые описаны стандартом. Функция strncpy_s это личная инициатива Microsoft

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <cstring>
 
int main() {
 
    char a[] = "Hello World";
    char b[6] = {0};
 
    std::strncpy(b, a, sizeof(b) / sizeof(*b) - 1);
 
    std::cout << b << std::endl;
 
    return 0;
}
1
06.02.2014, 17:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru