Jump to content
Fórum Script Brasil
  • 0

Ajuda com programa...


Fpslevelup

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 ! ! !

Edited by Felipe-Petrópolis
Link to comment
Share on other sites

  • 0

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.

Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...