Ir ao conteúdo
  • Cadastre-se

C++ Salvar struct em *.csv


Leandrolmg

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!