Fpslevelup Posted May 20, 2015 Report Share Posted May 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; } Quote Link to comment Share on other sites More sharing options...
0 Felipe222 Posted May 20, 2015 Report Share Posted May 20, 2015 (edited) 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 ! ! ! Edited May 20, 2015 by Felipe-Petrópolis Quote Link to comment Share on other sites More sharing options...
0 vangodp Posted May 20, 2015 Report Share Posted May 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. Quote Link to comment Share on other sites More sharing options...
0 Barao Posted May 20, 2015 Report Share Posted May 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. Quote Link to comment Share on other sites More sharing options...
0 Fpslevelup Posted May 20, 2015 Author Report Share Posted May 20, 2015 Valeo todos que me ajudaram... Quote Link to comment Share on other sites More sharing options...
Question
Fpslevelup
Ajuda aqui sou novo em programação e sempre tenho problema com o switch kkk
Quando eu compilo aparece.
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.