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

Stynne    2

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
vangodp    399

 

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
Stynne    2
  • 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
    CiroboyBR    271

    @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

    ×