|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.12.2011, 03:00 | #1 |
Новичок
Джуниор
Регистрация: 01.12.2011
Сообщений: 3
|
ошибка компиляции функция strcpy()
доброго времени суток!
Прошу помощи вот листинг при компиляции выдаёт ошибку: warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. ЛИСТИНГ: #include <iostream> #include <time.h> #include <stdlib.h> #include <string.h> #include <fstream> #include <string.h> //-------------------- using std::cout; using std::cin; //-------------------- struct NOTE { char NAME[20]; int PHONE; int BDAY[3]; }; //-------------------- void filling(NOTE Array[],int Size) { for(int i=0;i<Size;i++) { cout << "Enter a name: "; cin >> Array[i].NAME; cout << "Enter a phone: "; cin >> Array[i].PHONE; cout << "Enter day: "; cin >> Array[i].BDAY[0]; cout << "Enter a mounts: "; cin >> Array[i].BDAY[1]; cout << "Enter a year: "; cin >> Array[i].BDAY[2]; } } //-------------------- void swap(NOTE Array[],int i) { char tempName[20]; int tempPhone; int tempBday[3]; strcpy(tempName,Array[i].NAME); strcpy(Array[i].NAME,Array[i+1].NAME); strcpy(Array[i+1].NAME,tempName); tempPhone=Array[i].PHONE; Array[i].PHONE=Array[i+1].PHONE; Array[i+1].PHONE=tempPhone; for(int j=0;j<3;j++) { tempBday[j]=Array[i].BDAY[j]; Array[i].BDAY[j]=Array[i+1].BDAY[j]; Array[i+1].BDAY[j]=tempBday[j]; } } //-------------------- void sort(NOTE Array[],int Size) { for(int i=0;i<(Size-1);i++) { for(int j=0;j<(Size-2);j++) { if(Array[i].BDAY[2]<Array[i+1].BDAY[2]) { swap(Array,i); } if(Array[i].BDAY[2]=Array[i+1].BDAY[2]) { if(Array[i].BDAY[1]<Array[i+1].BDAY[1]) { swap(Array,i); } if(Array[i].BDAY[1]=Array[i+1].BDAY[1]) { if(Array[i].BDAY[0]<Array[i+1].BDAY[0]) { swap(Array,i); } } } } } } //-------------------- void print(NOTE Array[],int Size) { for(int i=0;i<Size;i++) { cout << "student: " << Array[i].NAME << "\n"; cout << "telefon number:" << Array[i].PHONE << "\n"; cout << "students bday: "; for(int j;j<3;j++) { cout << Array[i].BDAY[j] << "/"; } cout << "\n"; } } //-------------------- void print(NOTE Array[],int Size,int i) { cout << "student: " << Array[i].NAME << "\n"; cout << "telefon number: " << Array[i].PHONE << "\n"; cout << "students bday: "; for(int j=0;j<3;j++) { cout << Array[i].BDAY[j] << "/"; } cout << "\n"; } //-------------------- bool memu(NOTE Array[],int Size) { int choise, sNumb; cout << "*****MEMU*****\n"; cout << "1 - print all studens.\n"; cout << "2 - print student with number.\n"; cout << "3 - exit.\n"; cout << "Enter your choise: "; cin >> choise; cout << "\n"; switch(choise) { case 1: print(Array,Size); break; case 2: cout << "Enter number of student: "; cin >> sNumb; cout << "\n"; print(Array,Size,sNumb); break; case 3: return true; break; default: return false; } } //-------------------- int main() { srand(time(NULL)); const Size=6; bool exit =false; NOTE BLOCBNOTE[Size]; filling(BLOCBNOTE,Size); sort(BLOCBNOTE,Size); for(; { exit=menu(BLOCBNOTE,Size); if(exit) { break; } } return 0; } |
01.12.2011, 03:04 | #2 |
Форумчанин
Регистрация: 24.06.2010
Сообщений: 251
|
это вроде не ошибка а ворнинг...ничего страшного..просто попробуй вместо strcpy написать strcpy_s
|
01.12.2011, 03:08 | #3 |
Новичок
Джуниор
Регистрация: 01.12.2011
Сообщений: 3
|
спасибо большое заработало а не могли бы вы объяснить почему "_S" это изменение функции помогло и что именно поменялось в её работе?
|
01.12.2011, 03:18 | #4 |
Форумчанин
Регистрация: 24.06.2010
Сообщений: 251
|
|
01.12.2011, 03:21 | #5 |
Новичок
Джуниор
Регистрация: 01.12.2011
Сообщений: 3
|
спасибо большое
|
01.12.2011, 09:17 | #6 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Цитата:
|
|
01.12.2011, 09:31 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ТС, это обычное предупреждение.
такие я вообще отключаю. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.12.2011, 11:12 | #8 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,120
|
ICELIFE
вот листинг при компиляции выдаёт ошибку: warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. использование функций strcpy и им подобных считается опасным. раньше быдло-кодеры писали свои быдло-программы, которые глючили и падали, а разъяренные юзеры обвиняли во всем microsoft и лично Билли. Ему это надоело и microsoft придумала Secure CRT Теперь при падении программы есть формальный повод послать такого "программера" в пешее эротическое, переделывать свою поделку.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
25.04.2013, 22:23 | #9 |
Новичок
Джуниор
Регистрация: 25.04.2013
Сообщений: 2
|
Здравствуйте. У меня есть вопрос касательно strcpy. Мне тоже выдало "Предупреждение", по совету revaldo666 я добавил синтаксис _s, но при компиляции мне Visual studio выдал мне ошибку:
Код:
Код:
Вот исходный код: Код:
|
25.04.2013, 22:27 | #10 |
Новичок
Джуниор
Регистрация: 25.04.2013
Сообщений: 2
|
Примечание:
Я пока что beginer так что, как говорится - не судите строго. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка компиляции | ALEX INCORPORATEED | Помощь студентам | 7 | 14.09.2012 00:46 |
Ошибка компиляции? | hardorsoft | Помощь студентам | 5 | 19.05.2011 15:17 |
Ошибка компиляции | Lokos | Общие вопросы Delphi | 3 | 07.10.2010 08:17 |
Ошибка компиляции | Пaвeл | Общие вопросы C/C++ | 2 | 25.06.2010 19:22 |
Ошибка компиляции | ImmortalAlexSan | C++ Builder | 3 | 20.12.2009 21:19 |