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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2013, 07:11   #1
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию VC++ 2012 не хочет отрабатывать код из Страуструпа

Здравствуйте, Люди добрые (и недобрые, тоже здравствуйте).

Как создается проект: Файл ->Создать->Проект->Visual C++->консольное прилодение Win32 (в св-вах ставлю галку "пустой").
Далее праой кнопкой на заголовочные файлы ->добавить->создать элемент->Файл С++ (.cpp).
Перенес весь код со страниц 60-61. Вот собственно и он:
Код:

#include <iostream>



struct my_pair {
char * name;
int val;
};

const int large = 1024;
static my_pair vec[large+1];
const int MAX=256;

my_pair* find(const char* p)
{
	int i;
	for (i=0; vec[i].name;i++)
		if (strcmp(p,vec[i].name)==0) return &vec[i];
		if (i==large) return &vec[large-1];
		return &vec[i];
}

int& value(const char* p)
{
	my_pair* res= find(p);
	if (res->name==0)
	{
		res->name=new char[strlen(p)+1];
		std::strcpy(res->name,p);
		res->val=0;
	}
	return res->val;
}



void _tmain()
{
	char buf[MAX];
  while (std::cin>>buf) value(buf)++;
  for (int i=0;vec[i].name;i++)
	  std::cout << vec[i].name <<" : "<< vec[i].val <<'\n';
int i;
std::cin>>i;
}
Далее лезу в свойства проекта. С++->Препроцессор-> Определения препроцессора-> добавляем "_CRT_SECURE_NO_WARNING".

А он все равно ругается, шайтан. Вот что говорит:

1>c:\users\козьи-роги\documents\visual studio 2012\projects\consoleapplication2\и сходный код.cpp(30): 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.
1> c:\program files\microsoft visual studio 11.0\vc\include\string.h(110): см. объявление "strcpy"

Спасибо за наставление, добрые (и не добрые тоже) люди.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 17.09.2013, 07:53   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Rin

Это не ошибка а предупреждение в соответствии с политикой безопасного кода от MS.
Предназначено оно в основном для криворуких программистов, которые создают ненадежный код, а все шишки высыпают на MS.

... добавляем "_CRT_SECURE_NO_WARNING". ...

To disable deprecation, use _CRT_SECURE_NO_WARNINGS.

найди отличия (((:
Rififi вне форума Ответить с цитированием
Старый 17.09.2013, 08:34   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Ошибся, не error, a warning. Один черт, не запускалось))). В VC ++ нахожусь 1 день.
Отличия были немного не в этом. У меня было Warnings_. Но дело даже не в этом.
Теперь ошибка линковки:
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный внешний символ _main в функции ___tmainCRTStartup
1>fatal error LNK1120: неразрешенных внешних элементов: 1
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 17.09.2013, 10:44   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Для начала неплохо было бы подключить
Код:
#include <string.h>
Функции по работе со строками работают???
Попробуйте как вариант написать так... В самом начале прописываем.
Код:
#define _CRT_SECURE_NO_WARNINGS
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 17.09.2013, 20:21   #5
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Я использую предкомпилированные заголовки, поэтому #define не прокатит.
Моя глупая ошибка - "_tmain" вместо "main".
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 22.09.2013, 12:23   #6
Яковлев Ашот
Новичок
Джуниор
 
Аватар для Яковлев Ашот
 
Регистрация: 22.09.2013
Сообщений: 1
По умолчанию

Я все сделал как посоветовал Бугримов и у меня получилось, спасибо большое, очень помогли
Яковлев Ашот вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеется код, но не хочет работать цикл OwnedQQ Общие вопросы C/C++ 3 24.05.2013 12:01
как сделать чтобы Liwe Writer 2012 вставлял нужный код для Word Press? kamion WordPress и другие CMS 0 27.04.2013 13:41
Снова проблема, не хочет работать код Vceznayka Microsoft Office Excel 2 16.11.2011 10:44