Fpslevelup Postado Maio 20, 2015 Denunciar Share Postado Maio 20, 2015 Ajuda aqui sou novo em programação e sempre tenho problema com o switch kkk Quando eu compilo aparece. ||=== teste c, Debug ===| main.c|28|Error: expected data def of 'Menu', not func def| main.c|35|Error: integral expression expected| main.c|53|Error: expression expected| ||premature end of source file| ||=== Build finished: 4 errors, 0 warnings ===| o programa é este: #include <stdio.h> #include <stdlib.h> char vetor[100]; char valor; FILE *arquivo; //ponteiro do arquivo global void registre(){ arquivo= fopen ("text.txt","wt"); //wt=gravaçao //rt=leitura //a=append if(arquivo==NULL){ printf("não foi possivel abrir o arquivo"); exit(0); } fprintf(arquivo,"venda", &vetor, &valor); fclose(arquivo); } void leitura(){ arquivo= fopen ("text.txt","rt"); if(arquivo==NULL){ printf("não foi possivel abrir o arquivo"); exit(0); fscanf(arquivo,"%s %d", &vetor, &valor); printf("\n%s %d\n", vetor, valor); fclose(arquivo); } void Menu(){ printf("\n\tMenu"); int opcao(); printf("\n1=Registre Venda\n"); printf("\n2=Banco de Dados de Vendas\n"); printf("\n3=Sair\n"); scanf("%d", &opcao); switch (opcao){ case 1: registre(); break; case 2: leitura(); break; case 3: exit(0); default: printf("\nopcao invalida\n"); } } int main(){ Menu(); system("pause"); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Felipe222 Postado Maio 20, 2015 Denunciar Share Postado Maio 20, 2015 (editado) Olá! Iniciei meus estudos em C a pouco mais de 1 mês, mas vou tentar lhe ajudar. Com relação a linha |35| error: switch quantity not an integer|, aqui o problema era apenas com a linha 30 int opcao(); foi só tirar o () para este erro desaparecer. Com relação a linha |52| error: expected declaration or statement at end of input|, aqui o problema era que estava faltando um fecha chaves em uma parte especifica do seu código, na função void leitura(), na linha 27. Com relação a linha |15| warning: too many arguments for format [-Wformat-extra-args]|, aqui o problema ocorre porque, você não especificou os códigos de formatação para vetor e venda" %s, %c, %d ", fprintf (arquivo,"venda", &vetor, &valor); e ate onde sei se não me engano, não é necessário o & nessas suas duas variáveis, em fprintf. Bom só posso ir ate aqui... tente executar as dicas acima e poste o resultado para tentar lhe ajudar mais com o que eu puder. Ubuntu 14.04 GNU gcc 4.4.8 Codeblocks 13.12 Espero ter Ajudado ! ! ! Editado Maio 20, 2015 por Felipe-Petrópolis Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Maio 20, 2015 Denunciar Share Postado Maio 20, 2015 Acho que uma explicação do que tem que fazer o programa é bem vinda. Já que seus fprintf estão todos embaralhados, não sei o que tem que escrever ou ler nesse arquivo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Barao Postado Maio 20, 2015 Denunciar Share Postado Maio 20, 2015 #include <stdio.h> #include <stdlib.h> FILE* AbreArquivo(char modo, char caminho[30]){ FILE *arquivo; switch(modo){ case 'g': arquivo = fopen(caminho,"wt"); break; case 'l': arquivo = fopen(caminho,"rt"); break; case 'a': arquivo = fopen(caminho,"a"); break; } if(arquivo==NULL){ //Se houver algum erro, o ponteiro apontará para NULL printf("não foi possivel abrir o arquivo"); exit(0); } return arquivo; } void FecharArquivo(FILE *arquivo){ fclose(arquivo); } void Cadastra(char nome[30], int telefone){ FILE *arquivo; arquivo = AbreArquivo('a', "vendas.txt"); fprintf(arquivo, "%s %d\n", nome, telefone); FecharArquivo(arquivo); } void Listar(){ FILE *arquivo; char nome[30]; int telefone; arquivo = AbreArquivo('l',"vendas.txt"); while(!feof(arquivo)){ fscanf(arquivo,"%s %d ", &nome, &telefone); printf("Nome: %s - Telefone: %d\n", nome, telefone); } FecharArquivo(arquivo); } int main(){ int opcao; char nome[30]; int telefone; do{ system("cls"); printf("\n\n\t\também Vindo ao programa AGENDA\n"); printf("\nMENU"); printf("\n 1 - Registrar Venda"); printf("\n 2 - Listar venda"); printf("\n 3 - Sair"); printf("\nDigite uma opcao: "); scanf("%d", &opcao); system("cls"); switch(opcao){ case 1: printf("\nDigite o nome: "); setbuf(stdin,NULL); gets(nome); printf("\nDigite o telefone: "); scanf("%d", &telefone); Cadastra(nome, telefone); system("pause"); break; case 2: Listar(); system("pause"); break; case 3: printf("\n\nFinalizando...\n\n"); system("pause"); exit(0); break; default: printf("\n\nOpcao invalida! Tente Novamente!\n\n"); system("pause"); } }while(opcao!=3); return 0; } Adapte ao seu gosto. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fpslevelup Postado Maio 20, 2015 Autor Denunciar Share Postado Maio 20, 2015 Valeo todos que me ajudaram... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fpslevelup
Ajuda aqui sou novo em programação e sempre tenho problema com o switch kkk
Quando eu compilo aparece.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.