Ir ao conteúdo
  • Cadastre-se

Liraaah

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

2
  1. Estou Montado uma struct é está com esse erro, erro undefined reference to "fwirite" alguem poderia me dar uma solução, obrigado desde já!! #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <ctype.h> #define ARQ "Dados.Dat" #define OP_INSERIR '1' #define OP_ALTERAR '2' #define OP_APAGAR '3' #define OP_LISTAR '4' #define OP_PESQUISAR '5' #define OP_SAIR '0' #define OP_PESQ_IDADE '1' #define OP_PESQ_NOME '2' char *MainMenu[]={ "1. Inserir Registro", "2. Alterar Registro", "3. Apagar Registro", "4. Listar Registro", "5. Pesquisar", "0. Sair", NULL }; char *PesqMenu[]={ "1. Pesquisar por Intervalo de Idades", "2. Pesquisar por Nome", "0. Voltar", NULL }; FILE *fp; typedef struct { char Nome [30+1]; int Idade; float Salario; char Status; } PESSOA; void Mensagem (char *msg); void Ler_Pessoa(PESSOA *p) { printf("Nome : "); gets(p->Nome); printf("Idade : "); scanf("%d",&p->Idade); printf("Salario : "); scanf("%f",&p->Salario); p->Status=' '; fflush(stdin); } void Mostrar_Pessoa(PESSOA p) { printf("%-30s %3d %10.2f\n",p.Nome,p.Idade,p.Salario); } void Adicionar_Pessoa (PESSOA p) { fseek(fp, 0L, SEEK_END); if (fwrite(&p,sizeof(p),1,fp)!=1) Mensagem("Adicionar Pessoa: Falhou a escrita do Registro"); } void Mensagem(char *msg) { printf(msg); getchar(); } void Inic () { fp=fopen(ARQ,"r+b"); if (fp==NULL) { fp =fopen(ARQ,"w+b"); if (fp==NULL) { fprintf(stderr,"ERRO FATAL: Impossivel Criar Arquivo de Dados\n"); exit(1); } } } char Menu(char *opções[]) { int i; char ch; while (1) { printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); for (i=0; opções!=NULL; i++) printf("\t\t%s\n\n",opções); printf("\n\n\t\topção: "); ch = getchar(); fflush(stdin); for (i=0; opções!=NULL; i++) if (opções[0]==ch) return ch; } } void Inserir_Pessoa() { PESSOA x; Ler_Pessoa(&x); Adicionar_Pessoa(x); } void Alterar_pessoa() {PESSOA x; long int n_reg; printf("qual o N° do registro: "); scanf("%ld", & n_reg); fflush(stdin); if (fseek(fp,(n_reg-1)*sizeof(PESSOA),SEEK_SET)!=0) { Mensagem("Registro Inexistente ou Problemas no Posicionamento!!!"); return; } if (fread(&x,sizeof(PESSOA),1,fp)!=1) { Mensagem("Problema na Leitura do Registro!!!"); return; } if (x.Status=='*') { Mensagem("Um Registro Apagado não pode ser alterado!!!\n\n"); return; } printf("\n\nDados Atuais\n\n"); Mostrar_Pessoa(x); printf("\n\nNovos Dados\n\n"); Ler_Pessoa(&x); fseek(fp,-(long)sizeof(PESSOA),SEEK_CUR); fwirite(&x,sizeof(PESSOA),1,fp); fflush(fp); } void Apagar_Pessoa() {PESSOA x; long int n_reg; char resp; printf("Qual o N° do Registro: "); scanf("%ld", & n_reg);fflush(stdin); if (fseek(fp,(n_reg-1)*sizeof(PESSOA),SEEK_SET)!=0) { Mensagem("Registro Inexistente ou Problema no posicionamento!!!"); return; } if (fread(&x,sizeof(PESSOA),1,fp)!=1) { Mensagem("Problemas na Leitura do Registro!!!"); return; } if (x.Status=='*') { Mensagem("Registro já está Apagado!!!\n\n"); return; } printf("\n\nDados Atuais\n\n"); Mostrar_Pessoa(x); printf("\n\nApagar o Registro (s/n)???: "); resp = getchar(); fflush(stdin); if (toupper(resp)!='s') return; x.Status='*'; fseek(fp,-(long) sizeof(PESSOA),SEEK_CUR); fwrite(&x,sizeof(PESSOA),1,fp); fflush(fp); } void Listar() { long int N_Linhas =0; PESSOA reg; rewind(fp); while(1) { if (fread(&reg,sizeof(reg),1,fp)!=1) break; if (reg.Status=='*') continue ; Mostrar_Pessoa(reg); N_Linhas++; if (N_Linhas%20==0) Mensagem("PRESSIONE <ENTER> para continuar . . . "); } Mensagem("\n\nPRESSIONE <ENTER> para continuar . . . "); } void Pesquisar_Idades(int ini, int fim) {PESSOA reg; rewind(fp); while (fread(&reg,sizeof(PESSOA),1,fp)) if (reg.Status!='*' && reg.Idade>=ini && reg.Idade<=fim) Mostrar_Pessoa(reg); Mensagem("\n\nPRESSIONE <ENTER> para continuar . . . "); } void Pesquisar_Nome(char *s) { PESSOA reg; rewind(fp); while (fread(&reg,sizeof(PESSOA),1,fp)) if (reg.Status!='*' && strstr(reg.Nome,s)) Mostrar_Pessoa(reg); Mensagem("\n\nPRESSIONE <ENTER> para continuar . . . "); } main() { char Opcao; Inic(); while ((Opcao =Menu(MainMenu))!=OP_SAIR) switch (Opcao) { case OP_INSERIR: Inserir_Pessoa(); break; case OP_ALTERAR: Alterar_pessoa(); break; case OP_APAGAR: Apagar_Pessoa(); break; case OP_LISTAR: Listar(); break; case OP_PESQUISAR: while ((Opcao=Menu(PesqMenu))!=OP_SAIR) switch (Opcao) { case OP_PESQ_IDADE: { int n1,n2; printf("Qual o intervalo de Idades: "); scanf("%d%d",&n1,&n2); fflush(stdin); Pesquisar_Idades(n1,n2); break; } case OP_PESQ_NOME: { char string[BUFSIZ+1]; printf("Qual o Nome a Procurar: "); gets(string);fflush(stdin); Pesquisar_Nome(string); } } } }
  2. Estou começando a programar alguém poderia me dar uma dica sobre esse exercicio Dados valores para três matrizes X, Y e Z cada uma com uma dimensão de 05 linhas por 02 colunas, faça: a) uma função em C que leia valores do console e atribua-os às duas matrizes a saber: X e Y. uma função em C que apresente na matriz Z a média aritmética simples dos elementos constantes nas mesmas posições das matrizes X e Y.
  3. TYsquare obrigado pela ajuda parceiro, tinha que dar os números misturados com letras apenas isso adicionado 5 minutos depois ele deu esse código, mandou implementar no codigo #include <stdio.h> #include <stdlib.h> int main() { char letra; printf("Texto para Inteiro\n\n"); printf("Entre a letra: \n"); scanf("%c", &letra); printf("Letra: %c\nValor: %d\n", letra, letra); return 0; }
  4. To aprendendo ainda a programar, e meu professor pediu uma criptografia, consegui até rodar o pograma, mais ele disse: que tenho que usar a função de multiplicar, gostaria de uma ajuda... #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char senha[7]; char letras[41]; char frase[41]; char resultado[41]; char a; int i, cont = 0, tam = 0; printf("Digite a Senha: "); while (cont <= 5){ senha[cont] = getchar(); if(senha[cont] == 0x0A){ break; } cont ++; } setbuf(stdin, NULL); //scanf("%6s",senha); //strcpy(senha, lersenha()); for (i=0; i<6; i++) { printf("Valor do elemento %c da string = %d\n",i, senha); } while(cont < 40){ for(a='a';a <='z';a++){ letras[cont] = a; cont++; if (cont == 39) a == 'z'; } } printf("\n\nMostrando Alfabeto minusculo\n"); for (i = 0; i < 40; i++) printf("%c",letras); printf("\n\n"); printf("Digite a frase: "); scanf("%40s",frase); for (i=0; i<strlen(frase); i++) { printf("Valor do elemento %c da string = %d\n",i, frase); } return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...