Existe uma maneira de definir por padrão para todos os projetos, removendo os avisos seguros do pré-compilador que surgem ao usar funções como scanf (). Descobri que você pode fazer isso adicionando uma linha na opção do projeto ou uma #define _CRT_SECURE_NO_WARNINGS
no início do código.
Eu me pego criando repetidamente novos projetos para resolver concursos de programação e é realmente irritante (e leva um tempo valioso) acrescentar:
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
No início do código, ou para configurá-lo nas opções de pré-compilador toda vez que inicio um novo projeto.
c++
visual-studio
precompiler
Juan Martinez
fonte
fonte
Respostas:
Marque todos os projetos desejados no Solution Explorer.
Pressione Alt-F7 ou clique com o botão direito do mouse no Solution Explorer e selecione "Propriedades"
Configurações: Todas as configurações
Clique na linha Definições do pré-processador para chamar seu editor
Escolha Editar ...
Copie "_CRT_SECURE_NO_WARNINGS" na caixa branca Definições de pré-processador na parte superior.
fonte
Pode ter sido porque eu ainda sou novo no VS e definitivamente novo no C, mas a única coisa que me permitiu criar foi adicionar
Na parte superior do meu arquivo, isso suprimia o erro C4996 que eu estava recebendo com o sprintf
Um pouco chato, mas perfeito para o meu pequeno pedaço de código e de longe o mais fácil.
Eu li sobre isso aqui: https://msdn.microsoft.com/en-us/library/2c8f766e.aspx
fonte
#pragma warning(push)
/ em#pragma warning(pop)
vez disso.Não automaticamente, não. Você pode criar um modelo de projeto como o BlueWandered sugeriu ou criar uma folha de propriedades personalizada que você pode usar para seus projetos atuais e todos os futuros.
_CRT_SECURE_NO_WARNINGS
.Agora, sempre que você criar um novo projeto, adicione esta folha de propriedades da seguinte maneira ...
O benefício aqui é que você não apenas obtém um único local para gerenciar configurações comuns, mas sempre que altera as configurações, elas são propagadas para TODOS os projetos que a utilizam. Isso é útil se você tiver muitas configurações, como
_CRT_SECURE_NO_WARNINGS
bibliotecas, como o Boost, que deseja usar em seus projetos.fonte
Todas as soluções aqui falharam no meu VS2013, no entanto, coloquei o arquivo
#define _CRT_SECURE_NO_WARNINGS
stdafx.h antes do#pragma once
todos os avisos serem suprimidos. Nota: Eu codifico apenas para fins de prototipagem para apoiar minha pesquisa. Portanto, certifique-se de entender as implicações desse método ao escrever seu código.Espero que isto ajude
fonte
stdafx.h
localizado?meus dois centavos para o VS 2017:
Posso confirmar que funciona no stdafx.h nos dois estilos:
a)
b)
(Adicionei outra definição para chamadas de rede MSDN.) É claro que prefiro a).
Posso confirmar que: #define _CRT_SECURE_NO_WARNINGS (sem um valor) NÃO FUNCIONA.
PS: o ponto real é colocar essas definições ANTES das declarações de funções, ou seja, antes de * .h
fonte
basta copiar " _CRT_SECURE_NO_WARNINGS " cole-o em projetos-> propriedades-> c / c ++ -> pré-processador-> definições de pré-processador clique em ok. isso funcionará
fonte
Se o seu projeto não usa stdafx.h, você pode colocar as seguintes linhas como as primeiras linhas no arquivo .cpp e o aviso do compilador deve desaparecer - pelo menos para mim no Visual Studio C ++ 2008.
Não há problema em ter comentários e linhas em branco diante deles.
fonte
Mesmo que você possa adicionar _CRT_SECURE_NO_WARNINGS às propriedades do seu projeto, a maneira mais fácil é usar stdafx.h para qualquer tipo de aviso e desativação de erro, apenas certifique-se de colocar a seguinte linha (e semelhante) ANTES
Também não há necessidade de definir um valor (por exemplo, "1") para _CRT_SECURE_NO_WARNINGS, desde que definido. Portanto, deve ficar assim:
fonte
#pragma once
é definido pela implementação, mas segue o padrão de fato comum no Visual Studio. Se faz alguma diferença para você, se você definiu o símbolo do pré-processador antes ou depois do pragma, então você tem uma configuração de projeto quebrada (isso pressupõe que você esteja - indevidamente - equiparando "cabeçalhos pré-compilados" e "stdafx.h " ).