Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2013, 18:06   #1
Каталина
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 11
Радость Помогите исправить ошибки

Добрый день Уважаемые программисты, я только на чинаю учебу, не могли бы вы мне помочь исправить ошибки?
Код:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
#include <direct.h>
int main(void)
{
	setlocale(LC_CTYPE, "Russian");
   char *input="Весна. Солнце греет, временами дождь.";
   char *p;//дополнительный указатель
   char *z=" ,.";//строка с возможными разделителями
  int k=1;
        p = strtok(input, z);//выделение первого слова
    if (p) 
		printf("%d %s\n",k, p);
     do// цикл до конца строки
 {
	 p = strtok(NULL, z);// выделение очередного слова
    if (p)
 { 
	k++;
	printf("%d   %s\n",k, p);
 }
 }
   while(p);
   return 0;
}
А ошибки следующие:


1>------ Построение начато: проект: ConsoleApplication3, Конфигурация: Debug Win32 ------
1> ConsoleApplication3.cpp
1>c:\users\катерина\documents\visua l studio 2012\projects\consoleapplication3\c onsoleapplication3\consoleapplicati on3.cpp(15): error C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 11.0\vc\include\string.h(200): см. объявление "strtok"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Каталина вне форума Ответить с цитированием
Старый 21.10.2013, 19:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну замени strtok на strtok_s...
Или напиши
Код:
#define _CRT_SECURE_NO_WARNINGS
в самой первой строке до всех #include
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2013, 20:11   #3
Каталина
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 11
По умолчанию

Поменяла на strtok_s, пишет "функция не принимает 2 аргументов"

А при подключении #define _CRT_SECURE_NO_WARNINGS, и вовсе много ошибок вылезает(

Последний раз редактировалось Stilet; 21.10.2013 в 20:30.
Каталина вне форума Ответить с цитированием
Старый 21.10.2013, 20:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Вот пример: http://msdn.microsoft.com/en-us/library/ftsafwz3.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2013, 21:00   #5
Каталина
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 11
По умолчанию

Не сильно понятно(
Каталина вне форума Ответить с цитированием
Старый 21.10.2013, 21:21   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Каталина

Когда создаешь проект, не ставь эту галочку:

Rififi вне форума Ответить с цитированием
Старый 21.10.2013, 21:38   #7
Каталина
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 11
По умолчанию

Оу, спасибо, отладка успешна)
Но теперь проблема в другом
Изображения
Тип файла: jpg Безымянный.jpg (107.7 Кб, 150 просмотров)
Каталина вне форума Ответить с цитированием
Старый 22.10.2013, 00:17   #8
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Каталина

У тебя русская версия Visual Studio oO
это разу -10 к стабильности программы.

по проблеме: жмакаешь прервать, вываливаешься в отладчик, в точку выброса исключения.
анализируешь код, выявляешь проблему, устраняешь её, ... PROFIT!

PS. кста, кто дал тебе эту прогу? отпинай его с особой жестокостью и скажи чтобы сначала руки распрямил (((:

такая запись некорректная

char *input="Весна. Солнце греет, временами дождь.";
p = strtok(input, z);

не вдаваясь в подробности, скажу что содержимое строки input расположено в памяти доступной только на чтение. функция strtok модифицирует переданную ей строку... с печальными последствиями для программы.

Последний раз редактировалось Stilet; 22.10.2013 в 08:21.
Rififi вне форума Ответить с цитированием
Старый 22.10.2013, 12:55   #9
Каталина
Пользователь
 
Регистрация: 04.10.2013
Сообщений: 11
По умолчанию

Прогу дали в универе как контрольную которую нужно заставить работать)))
Каталина вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки kristi5570 Помощь студентам 0 08.10.2013 22:08
Помогите исправить ошибки witek HTML и CSS 0 12.12.2009 17:39
помогите исправить ошибки Euforia_PZAS09_1 Паскаль, Turbo Pascal, PascalABC.NET 0 19.10.2009 21:41
Помогите исправить ошибки Satorin Общие вопросы Delphi 4 25.12.2008 21:35
Помогите исправить ошибки ...С++ Настенька Помощь студентам 1 25.03.2007 23:30