Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Stynne

Passagem de parâmetros de funções

Recommended Posts

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.");
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Ja arrumei a maioria dos bugs... e eram uns quantos >_<. Agora não me peça que te explique tudo porque vai ser como ir ao pezinho outra vez. Melhor o estude e pergunte o que tiver duvida.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
	char nome[30];
	char *console;
	char genero[15];
	int codigo;
	float preco;
}jogos;

char* menu ();

jogos entrada () {
    //int tipoconsol;
    jogos cod;
    printf ( "Digite o nome do jogo:" );
    scanf ( "%29[^\n]%*c", cod.nome );
    
    if ( strcmp ( cod.nome, "zzzz" ) == 0 || strcmp ( cod.nome, "zzzz" ) == 0 )
        exit ( 0 );
    else {
        cod.console = menu ();
        printf ( "\nDigite o genero: " );
        scanf ( "%14[^\n]%*c", cod.genero );
        printf ( "Digite o codigo do produto: " );
        scanf ( "%d%*c", &cod.codigo );
        printf ( "Digite o preco: " );
        scanf ( "%f%*c", &cod.preco );
        printf ( "\nNome: %s\nConsole: %s\nGenero: %s\nCodigo: %d\nPreco: %.2f\n", cod.nome, cod.console, cod.genero, cod.codigo, cod.preco );
    }
    return cod;
}

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

char* menu () {
	int menu1;
	printf("Selecione o console desejado: ");
	printf("1-PS4 \n2-XBOX ONE \n3-PS3 \n4-XBOX 360 \n5-Wii\n\n"); 
	scanf("%d%*c",&menu1);
	switch (menu1) {
	case 1:
		printf("PS4");
		return (char*)"PS4";
		break;
	case 2:
		printf("XBOX ONE");
		return (char*)"XBOX ONE";
		break;
	case 3:
		printf("PS3");
		return (char*)"PS3";
		break;
	case 4:
		printf("XBOX 360");
		return (char*)"XBOX 360";
		break;
	case 5:
		printf("Wii");
		return (char*)"Wii";
		break;
	}
	return (char*)"No Console";
}

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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

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

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×