Ir ao conteúdo

Posts recomendados

Postado

Bom, tenho que fazer um exercício que pede uma série de coisas, porém está dando um erro dizendo que "menu was not declared", porém menu não é uma variável, é uma função.
Vou colocar os dois exercícios (que são juntos) e o código que fiz... me ajudem, por favor. Tenho prova amanhã =/

4) Em uma loja os games são identificados por:
Nome – 30 caracteres;
Console – 10 caracteres;
Genero – 15 caracteres;
Codigo – inteiro;
Preço – ponto flutuante. Desenvolva uma estrutura de dados para armazenar esses dados.

5) Elabore um programa para o cadastro de games da loja do exercício anterior. A função main() do programa deve acessar as seguinte funções:
• entrada() – responsável por coordenar a entrada de dados;
• gravar() – grava os registros digitados em um arquivo txt;
Quando for inserir os dados do campo console, deve ser chamada uma função que exiba um menu com as seguintes opções:
1 – PS4;
2 – XBOX ONE;
3 – PS3;
4 – XBOX 360;
5 – Wii.
O campo deve ser preenchido de acordo com o retorno da função. A entrada de dados deve ser finalizada quando for digitado um Nome igual a ZZZZ.

Meu código: 

 

#include <stdio.h>
#include <stdlib.h>

struct jogos {
	char nome[30];
	char console[10];
	char genero[15];
	int codigo;
	float preco;
};

void entrada () {
	int tipoconsol;
	jogos cod;
	printf("Digite o nome do jogo:");
	gets(cod.nome);
	if (cod.nome[30] == 'zzzz' && 'ZZZZ')
		exit (0);
	else {
		cod.console = menu ();
		printf("Digite o genero: ");
		gets(cod.genero);
		printf("Digite o codigo do produto: ");
		scanf("%d",&cod.codigo);
		printf("Digite o preco: ");
		scanf("%f",&cod.preco);
		printf("\nNome: %s\nConsole: %s\nGenero: %s\nCodigo: %d\nPreco: %f\n",cod.nome,cod.console,cod.genero,cod.codigo,cod.preco);
		}
}

void gravar () {
	FILE *arq;
	jogos cod;
	arq = fopen("I:\\ESTUDOS\\ex6.txt","w");
	fprintf(arq,"Nome: %s\nConsole: %s\nGenero: %s\nCodigo: %d\nPreco: %f\n",cod.nome,cod.console,cod.genero,cod.codigo,cod.preco);
	fclose(arq);
}

char menu () {
	int menu1;
	printf("Selecione o console desejado: ");
	scanf("%d",&menu1);
	printf("\t1. PS4\t2. XBOX ONE\t3. PS3\t4. XBOX 360\t.5 Wii"); 
	switch (menu1) {
	case 1:
		return printf("PS4");
		break;
	case 2:
		return printf("XBOX ONE");
		break;
	case 3:
		return printf("PS3");
		break;
	case 4:
		return printf("XBOX 360");
		break;
	case 5:
		return printf("Wii");
		break;
	}
}

int main () {
	printf("Bem vindo a Moovie Games");
	entrada ();
	gravar ();
	printf("Cadastrado com sucesso.");
}

 

Postado

Poderia me explicar apenas o porquê de console ser um ponteiro?
Tudo que tem ponteiro me causou dúvida, o resto eu entendi perfeitamente quais foram os erros.
De qualquer forma, muito obrigado pela ajuda.

Postado

@Stynne É que nesse caso o ponteiro aponta para o endereço na memória de uma string. É bem comum utilizar ponteiros para retornar strings ou para passar uma string por parâmetro em uma função.

 

também pode se utilizar ponteiro de int para passar um vetor de inteiros, e a string também é um vetor, só que é um vetor de char.

Visitante
Este tópico está impedido de receber novas respostas.

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