Ir ao conteúdo

Posts recomendados

Postado

Boa noite pessoal!

 

Preciso realizar este exercício: Crie um programa, em linguagem C, que receba 10 registros contendo: Nome, RU, telefone e e-mail. Solicite que sejam digitados todos os dados de todos os registros e ao final salve-os em um arquivo com a extensão CSV, utilize o ; (ponto e vírgula) para separador e campo. O nome do arquivo deve ser o seu número de RU.

 

Mas não estou conseguindo realizar essa parte de salvar o arquivo.

ERRO:  'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

 

Meu código:

/* include = inclui ou add bibliotecas */
#include <stdio.h> 
#include <stdlib.h> 
#include<locale.h>

/* criando a struct */
struct ficha_do_aluno
{
	char nome[50];
	char email[50];
	char telefone[50];
	int RU;
/* criando a variável aluno que será do tipo struct ficha_do_aluno */
}; struct ficha_do_aluno aluno;

/* criando a função principal */
int main()
{
	setlocale(LC_ALL, "portuguese");
	int cont;
	ficha_do_aluno aluno[10];
	FILE* p;
	p = fopen("1239771.csv","w");
	
	for (cont = 0; cont < 10; cont++)
	{
		printf("\n**************** CADASTRO DO ALUNO ****************\n\n");

		printf("Digite o nome completo: ");			// valor do nome completo
		fgets(aluno[cont].nome, 49, stdin);			// fgets aceita espaços
			
		printf("Digite o e-mail: ");				// valor do email
		fgets(aluno[cont].email, 49, stdin);		// fgets aceita espaços

		printf("Digite o telefone: ");				// valor do telefone
		fgets(aluno[cont].telefone, 49, stdin);		// fgets aceita espaços

		printf("Digite o RU: ");					// valor do RU
		scanf_s("%d", &aluno[cont].RU);				// scanf_s não aceita espaços
	}
	
	for (cont = 0; cont < 10; cont++)
	{
		printf("\n\tInformações do aluno\n");
		printf("RU:%d\n", aluno[cont].RU);
		printf("Nome:%s", aluno[cont].nome);
		printf("Telefone:%s", aluno[cont].telefone);
		printf("Email:%s", aluno[cont].email);
	}
	fclose(p);
	system("pause");

	return 0;
}

 

  • Curtir 1
Postado
1 hora atrás, Leandrolmg disse:

ERRO:  'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

 

Pois é: leu essa mensagem imagino. Que fez? Aí diz para ver na ajuda online para detalhes e imagino que não viu nada ou não teria perguntado isso. 

 

E essa sugestão para usar _CRT_SECURE_NO_WARNINGS ? Fez algo a respeito? Pois essa é a instrução que desabilita esses avisos de função obsoleta que vão dar erro em fopen(), scanf() e outras.

 

Se ler na ajuda online (como foi sugerido na mensagem que recebeu e postou aqui) vai ver que existe uma razão para isso e que existem versões seguras dessas funções.

 

Use fprintf() para gravar os dados. É trivial usar arquivos em C. Essa linguagem foi escrita para escrever um sistema, O Unix. E no Unix tudo é arquivo. Então eles não iam deixar isso ser difícil em uma linguagem que eles mesmos estavam escrevendo. Em especial considerando que eles eram um grupo de gênios e provavelmente dos melhores de nossa época. E antes dessa época não haviam desenvolvedores de software afinal 🙂 

 

 

Apenas configure isso nas propriedades do projeto ou na linha de comando do compilador ou em um #define. Exatamente o que está escrito na mensagem.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!