Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com programa...


Fpslevelup

Pergunta

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;
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

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 por Felipe-Petrópolis
Link para o comentário
Compartilhar em outros sites

  • 0
#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.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...