Ir ao conteúdo
  • Cadastre-se

clodoaldoPeres

Membro Pleno
  • Posts

    53
  • Cadastrado em

  • Última visita

Tudo que clodoaldoPeres postou

  1. int codigoInserido; cin>>codigoInserido; for(int i=0;i < 3;++i) { if(livros.Codigo == codigoInserido) cout<<livros.Titulo<<endl; //só para mostrar o titulo do livro q bate com o codigo //criar um novo array de livros com os encontrados ou imprimir na tela o codigo encontrado,etc }
  2. max é sugestivo você tem que declara-lo (é o tamanho total do teu array) e codigoInserido também tem q ser declarado e você deve usar o cin>>codigoInserido para capturar o codigo q o usuario inserir Se quer conhecer melhor de c++ leia o forum cplusplus (http://www.cplusplus.com/)
  3. algo como #include<fstream>#include<iostream>#include<sstream>using namespace std;int main(){ ofstream s; int a=123; stringstream ss; ss<<a; char buffer[10]; ss.get(buffer,ss.str().length()+1); cout<<buffer<<" "<<ss.str().length()<<endl; s.open(buffer); s.close();} ou se for c++ 11 use o to_string() -> http://www.cplusplus.com/reference/string/to_string/?kw=to_string
  4. posta o que já fez e tentaremos ajudar
  5. Conforme dito pelo nosso amigo oliver.soul o "w" deve ser minusculo e você deve sempre testar se o arquivo abriu. Sugiro que leia o livro C completo e total a partir da pagina 219 http://faculdadepromove.br/bh/biblioteca/pdfs/mestrato/08.pdf
  6. básico... use um laço percorrendo teu array de Livros e comparando o Livro-indice com o codigo inserido pelo usuario for(int i=0;i < max;++i){ if(livros.Codigo == codigoInserido) ...//criar um novo array de livros com os encontrados ou imprimir na tela o codigo encontrado,etc } OBS: sugiro que nao misture C com C++. Por exemplo, se esta usando cout, cin, namespace, etc use class ou invés de struct e metodos para acessar os atributos, use List ou Vector ao invés de um vetor de objetos [] ....
  7. Problemas: 1-teu #define Pessoa no arquivo Pessoa.h está conflitando com o tipo Pessoa do teu typedef struct... Pessoa 2-Na função abaixo tirar o ponto e vírgula void inserir(Lista *l, Pessoa p, int posicao);//tirar o ponto e vírgula { //já está pronta, porém não achei necessário colocá-la} O resto não olhei, então, não me comprometo com tua implementação. Se está correta ou não você terá q testar e se tiver problemas vai postando e vamos tentando ajudar as dúvidas pontuais.
  8. mostre o que já fez (código) e tentaremos te ajudar.
  9. você pode utilizar o fgets(). A sintaxe dele é char* fgets(char * str, int num, FILE * stream ) onde o 'num' é a qntd limite de caracteres que você deseja ler do arquivo. Caso for encontrado um '\n' (fim de linha) ele retorna tudo que foi lida até ali (caso nao ultrapasse o valor limite 'num') e armazena em 'str' e se encontrar um fim de arquivo retorna um ponteiro nulo. Cada vez q você chamar fgtes() será executada a leitura a partir de onde parou. Caso necessite navegar entre o arquivo, ou seja, andar para frente ou para trás leia sobre o fseek(), ftell(), rewind(). http://www.cplusplus.com/reference/cstdio/fseek/ http://www.cplusplus.com/reference/cstdio/ftell/ http://www.cplusplus.com/reference/cstdio/rewind
  10. "Nao consigo encontrar o erro" eu diria mais "nao consigo encontrar o que está certo". você tem muitos erros de sintaxe. Sugiro que leia sobre cada comando para entende-los. Existe um bom livro chamado C COMPLETO E TOTAL que irá ajudá-lo bastante e o portal C/C++ http://www.cplusplus.com/ . você declarou struct com mesmo nome, usou o modificador const sem usar o tipo, a sintaxe do comando switch estava errada, fechamento de chaves, usou a função main em local indevido, a leitura de string com scanf estava errada,.... Eu só alterei o que estava errado, sem levar em conta a finalidade do algoritmo. #include <stdio.h>#include <stdlib.h>//#define n 50typedef struct cliente{int codigo_cliente[5];char nome_cliente[30];char endereco_cliente[25];char cidade_cliente[15];int telefone_cliente[10];int cep_cliente[8];int cpf_cliente[11];int datalocacao_cliente[6];int datadevolucao_cliente[6];int dec;int dec1;}Tcliente;typedef struct carro//{//typedef struct cliente{int codigo_cliente[5];char nome_cliente[30];char endereco_cliente[25];char cidade_cliente[15];int telefone_cliente[10];int cep_cliente[8];int cpf_cliente[11];int datalocacao_cliente[6];int datadevolucao_cliente[6];}Tcarro;int main(){int i;const int n=50;int op=1,poslivre=0,cont;Tcliente cliente[n]; //vetor de 5000 clienteswhile (op!=0){//int main()char nome_carro[30];system("cls");printf("digite 0 para sair\n");printf("digite 1 para cadastrar\n");printf("digite 2 para mostrar\n");printf("digite 3 para pesquisar clientes\n");printf("digite 4 para pesquisar carros\n");printf("digite 5 para inserir novos clientes\n");printf("digite 6 para remover clientes\n");printf("digite 7 para inserir novos carros\n");printf("digite 8 para remover carros\n");printf("digite 9 para ordenar clientes\n");printf("digite 10 para alterar cadastro\n");scanf("%i",&i);//scanf("%s",&i);switch (i){case 1:printf("insira o codigo do cliente\t");fflush(stdin);scanf("%i",cliente[poslivre].codigo_cliente);printf("insira o nome do cliente\t");fflush(stdin);scanf("%[^\n]",cliente[poslivre].nome_cliente);printf("insira o endereco do cliente\t");fflush(stdin);scanf("%[^\n]",cliente[poslivre].endereco_cliente);printf("insira a cidade do cliente\t");fflush(stdin);scanf("%[^\n]",cliente[poslivre].cidade_cliente);printf("insira o telefone do cliente\t");fflush(stdin);scanf("%i",cliente[poslivre].telefone_cliente);printf("insira o cep do cliente\t");fflush(stdin);scanf("%i",cliente[poslivre].cep_cliente);printf("insira o cpf do cliente\t");fflush(stdin);scanf("%i",cliente[poslivre].cpf_cliente);printf("insira datalocacao do cliente\t");fflush(stdin);scanf("%i",cliente[poslivre].datalocacao_cliente);printf("insira a datadevolucao do cliente\t");fflush(stdin);scanf("%i",cliente[poslivre].datadevolucao_cliente);poslivre++;break;case 2:printf("codigo do cliente: %i\t\n",cliente[cont].codigo_cliente);printf("nome do cliente: %s\t\n", cliente[cont].nome_cliente);printf("endereco do cliente: %s\t\n", cliente[cont].endereco_cliente);printf("cidade do cliente: %s\t\n", cliente[cont].cidade_cliente);printf("telefone do cliente: %i\t\n",cliente[cont].telefone_cliente);printf("cep do cliente: %i\t\n",cliente[cont].cep_cliente);printf("cpf do cliente: %i\t\n",cliente[cont].cpf_cliente);printf("datalocacao do cliente: %i\t\n",cliente[cont].datalocacao_cliente);printf("datadevolucao do cliente: %i\t\n",cliente[cont].datadevolucao_cliente);break;default : puts("nenhum");}}system("pause");} No forum o que mais tem são exemplos de código para cadastros. Dê uma olhada...
  11. C COMPLETO E TOTAL http://faculdadepromove.br/bh/biblioteca/pdfs/mestrato/08.pdf a partir da pagina 219
  12. Segue uma ideia (Não que seja a melhor maneira-fica o gancho para melhora-lo) #include<stdio.h>#define MAX 4int main(){char Tab1[MAX];char Tab2[MAX];char Tab3[MAX];int Lin,Lin2=0,Lin3=0,Lin4=0,existe; for(Lin=0;Lin<MAX;Lin++){ puts("\nCaracteres1"); Tab1[Lin]=getchar(); fflush(stdin);}for(Lin=0;Lin<MAX;Lin++){ puts("\nCaracteres2\n"); Tab2[Lin]=getchar(); fflush(stdin);} puts("\nprocessando");for(Lin=0;Lin<MAX;Lin++){ existe=0; for(Lin2=0;Lin2<MAX;Lin2++) { if(Tab1[Lin2]==Tab2[Lin]) { for(Lin4=0;Lin4<Lin3;++Lin4) if(Tab3[Lin4] == Tab2[Lin]){ existe=1; break; } if(existe != 1) Tab3[Lin3++]=Tab2[Lin]; } if(existe == 1) break; }}puts("\nCaracteres1\n");for(Lin=0;Lin<MAX;Lin++){ printf(" %c",Tab1[Lin]);}puts("\nCaracteres2");for(Lin=0;Lin<MAX;Lin++){ printf(" %c", Tab2[Lin]);}puts("\nCaracteres3"); for(Lin=0;Lin<Lin3;Lin++){ printf(" %c", Tab3[Lin]);}}
  13. Sinto muito. Politica do forum. Trabalhos_Feitos(http://www.trabalhosfeitos.com/) return cabeca(void) Forum_clube_hardware("seu esforço") resultado="seu esforço" + "nosso esforço" return(crescimento_mutuo)
  14. Mandar código e onde está com dúvida
  15. Segue meus comentários #include<stdio.h>#include<stdlib.h>#include<string.h> typedef struct email{ char email[64];}email; typedef struct endereco{ char rua[64]; char bairro[32]; char cidade[32]; char estado[2];}endereco; typedef struct data{ int dia; int mes; int ano;}data;typedef struct contato{ int cod; char nome[32]; char sobrenome[32]; char cel[16]; char fixo[16]; char ftra[16]; }contato;// Primeira duvida nao sei se to fechando e abrindo corretamente o arquivo, segundo ele nao ta gravando //e ta pulado,sei que o codigo esta incompleto, so quero //fazer ele salvar off-line depois disso fica fácil adicionar mais funções.... obrigadoint main (int bancoc,char const *bancov[]){ system("cls"); FILE *banco; banco = fopen("contato.txt","w+"); if( banco == NULL) // vc deve testar o erro na abertura do arquivo imediatamente após a tentativa perror("Erro ao tentar abrir arquivo"); struct endereco e[1000]; struct data d[1000]; struct email i[1000]; struct contato c[1000]; int qu=0,op,x=0,x1=0; system("color 17"); printf("\t\t***Bem vindo a Agenda eletronica***\n"); printf("\t\t\t %d contatos cadastrados\n",x); printf("Data: ");system("date/t\n"); printf("Digite o numero correspondente a fun%c%co...\n ",135,132); printf("\n1)Para cadastrar um novo contato\n2)Mostar Todos os contatos\n3)Para pesquisar um contato\n4)Finalizar sessao\n"); scanf("%d",&op); switch (op){ case 1:{ printf("Digite o nome do contato a ser cadastrado\n"); fflush(stdin); fgets(c[x].nome,100,stdin); fscanf(banco,"%s",&c[x].nome); //se vc fizer isso a variavel "nome" deve ter algum conteúdo, por isso fiz o fgets antes fflush(stdin); printf("Digite o sobrenome do contato\n"); fgets(c[x].sobrenome,100,stdin); fscanf(banco,"%s",&c[x].sobrenome); fflush(stdin); printf("Digite o celular\n"); fgets(c[x].cel,100,stdin); fscanf(banco,"%s",&c[x].cel); fflush(stdin); printf("Digite o telefone fixo\n"); fgets(c[x].fixo,100,stdin); fscanf(banco,"%s",&c[x].fixo); fflush(stdin); printf("Digite o telefone do trabalho do contato\n"); fgets(c[x].ftra,100,stdin); fscanf(banco,"%s",&c[x].ftra); fflush(stdin); printf("Digite a data de anivesario do contato (ex: 30 04 1996)\n"); scanf("%d%d%d",&d[x].dia, &d[x].mes, &d[x].ano); fscanf(banco,"%d %d %d",&d[x].dia, &d[x].mes, &d[x].ano); fflush(stdin); printf("Digite a cidade do contato\n"); fgets(e[x].cidade,100,stdin); fscanf(banco,"%s",&e[x].cidade); fflush(stdin); printf("Digite o bairro do contato\n"); fgets(e[x].bairro,100,stdin); fscanf(banco,"%s",&e[x].bairro); fflush(stdin); printf("Digite apenas a sigla do estado do contato(ex: MG)\n"); fgets(e[x].estado,100,stdin); fscanf(banco,"%s",&e[x].estado); fflush(stdin); printf("Digite o nome da rua\n"); fgets(e[x].rua,100,stdin); fscanf(banco,"%s",&e[x].rua); fflush(stdin); printf("Digite o contato do email\n"); fgets(i[x].email,100,stdin); scanf("%s",&i[x].email); fflush(stdin); x++; break;} fclose(banco); case 2: for(x1=0;x1<x;x1++){ printf("codigo do contato %d\n",x); printf("Nome do contato %s Sobrenome \n",c[x1].nome,c[x1].sobrenome); printf("Telefone celular %c Telefone Fixo %c Telefone do trabalho %c \n",c[x1].cel,c[x1].fixo,c[x1].ftra); printf("Aniversario do contato %d %d Email para contato \n",d[x1].dia,d[x1].mes,i[x1].email); printf("Endereco: Estado %c Cidade %c Bairro %c\n",e[x1].estado,e[x1].cidade,e[x1].bairro); printf("Rua %s\n",e[x1].rua); printf("\n\n"); } break; case 3: break; } printf("\n1%c Periodo de Ci%cncias da Computa%c%co %c%c%c\n",167,136,135,132,33,33,33); system("pause");}
  16. Nós precisamos muito que você mostre o que fez até agora e aonde exatamente está com dificuldades
  17. Pode ser feito de várias formas como: fprintf(cad_veiculo,"%s" ,cad.modelo); fprintf(cad_veiculo,"%s",cad.placa); fprintf(cad_veiculo,"%s",cad.descricao); fprintf(cad_veiculo,"%d\n",cad.ano);// na ultima vez q escrever ou fputc('\n',cad_veiculo); // escreve um caractere ...
  18. Um boa saida é primeiramente ordenar a matriz. Assim, você terá o maior e o menor número nas extremidades e os 2 menores seguidos. Para isso, você pode utilizar um algoritmo de ordenação pronto tipo: quick sort (CTRL+C - CTRL+V)
  19. recomendo que leia o livro C COMPLETO E TOTAL (http://faculdadepromove.br/bh/biblioteca/pdfs/mestrato/08.pdf) a partir da página 219. você terá que aprender a abrir um arquivo (texto ou binário / leitura ou escrita), testar situações de erro, manipulá-lo (escrever, ler, navegar) e em seguida fecha-lo. Sugiro que comece pelo básico: abrir / fechar e testar os respectivos erros.
  20. Primeiro (pelo enunciado da questão) tua struct tá errada. Deveriam haver 2 structs 1 typedef struct{ long int codigo_cliente; char *nome_cliente; } registro1; 2 typedef struct{ long int n_conta; double valor_compra; long int codigo_cliente; }registro2; A essência do exercício está baseada em banco de dados relacionais. Então, você deve linkar os registros como se fossem 2 tabelas de BD.
  21. #include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>struct cad_veiculo{ char modelo[80]; char placa[20]; char descricao[200]; int ano; }cad;//################### PROTOTIPOS && VARIABLES GLOBAIS ###################### void CADASTRAR(void); void PESQUISA(char pesq[200]); void MENU(void); void ALTERAR(void); //########################## FUNÇAO PRINCIPAL ################################int main(){ //textcolor(WHITE); // system("MODE con cols=60 lines=30"); while(1){ MENU(); } }// ########################## FUNÇOES ##############################################void MENU(void){ int menu=0; char ch,pesq[200],excluir[200]; printf("\t\tMENU\n\n\n"); printf("1 - CADASTRAR \n\n"); printf("2 - PESQUISAR STRING\n\n"); printf("3 - LOCALIZAR/EDITAR \n\n"); printf("4 - SAIR\n\n"); printf("\n\n############################################\n\n\n"); scanf("%d",&menu); switch(menu) { case 1: system("cls"); CADASTRAR(); break; case 2: system("cls"); printf("Digite o que quer procurar -> "); fflush(stdin); fgets(pesq,sizeof(pesq),stdin); PESQUISA(pesq); break; case 3: system("cls"); ALTERAR(); break; case 4: exit(EXIT_SUCCESS); break; default: system("cls"); printf("Desculpe op\x87\xc6o errada !"); ch=getche(); system("cls"); } }void ALTERAR(void){ char placa[20]; char opc; FILE *file; int regnum=0,pos=0; if((file=fopen("cad_veiculo.txt","r")) == NULL){ //quando você usar fread, aqui você deve abrir como "rb", ou seja, binario. Nesse caso abri como texto printf("\nERRO AO ABRIR O ARQUIVO ! "); system("pause"); exit(-1); }printf("\nDIGITE A PLACA -> ");fflush(stdin);fgets(placa,sizeof(placa),stdin); while(feof(file) == 0){ fgets(cad.modelo,sizeof(char)*20,file);//lendo como texto e nao binario fgets(cad.placa,sizeof(char)*80,file); fgets(cad.descricao,sizeof(char)*200,file); fscanf(file,"%d",&cad.ano); //printf("cad.placa %s - modelo %s descricao %s ano %d ",cad.placa,cad.modelo,cad.descricao,cad.ano); if(strcmp(placa,cad.placa)==0){ printf("Modelo :%s\n Placa :%s\n Ano :%d\n Descricao :%s\n",cad.modelo,cad.placa,cad.ano,cad.descricao); regnum = ++pos; break; } } if(regnum==0){ printf("\nDESCULPE CADASTRO NAO LOCALIZADO!\n\n\n"); }else{ printf("\nDESEJA ALTERAR O REGISTRO?(s/n)"); scanf("%c",&opc); getchar(); if(opc=='s' || opc=='S'){ printf("\nATUALIZAR CADASTRO!"); printf("\n\nModelo : "); fflush(stdin); fgets(cad.modelo,sizeof(cad.modelo),stdin); printf("\nPlaca : "); fflush(stdin); fgets(cad.placa,sizeof(cad.placa),stdin); printf("\nAno : "); fflush(stdin); scanf("%d",&cad.ano); printf("\nDescricao : "); fflush(stdin); fgets(cad.descricao,sizeof(cad.descricao),stdin); printf("\n\n"); getchar(); fseek(file,sizeof(struct cad_veiculo)*(regnum-1),SEEK_SET); fwrite(&cad,sizeof(struct cad_veiculo),1,file); printf("\t*******ARQUIVO ALTERADO COM SUCESSO******\n\n"); pos=0; regnum=0; } } fclose(file); }void PESQUISA(char pesq[200]){ FILE *file; char temp[200]; if((file=fopen("cad_veiculo.txt","r")) == NULL){ //se o arquivo nao existe mostra a mensagem abaixo e sai printf("\nERRO AO ABRIR O ARQUIVO ! "); for(int x=0;x<999999999;x++); //um time para dar tempo de ver a mensagem acima exit(-1); } while(fgets(temp,200,file)!=NULL){ if(strstr(temp,pesq)){ // textcolor(RED); printf("\n\n%s",strupr(temp)); //textcolor(WHITE); printf("\n\n\n"); } } fclose(file); }//CADASTRA VEICULOvoid CADASTRAR(void){#define ESC 27int year,key=0;FILE *cad_veiculo;cad_veiculo=fopen("cad_veiculo.txt","a"); do{ printf("\t\tCADASTRO\n\n\n"); printf("\t\tPRESSIONE ESC PARA SAIR\n\n\n"); printf("\nModelo : "); fflush(stdin);//limpando o buffer fgets(cad.modelo,sizeof(cad.modelo),stdin); printf("\nAno : "); fflush(stdin); scanf("%d",&year); printf("\nPlaca : "); fflush(stdin); fgets(cad.placa,sizeof(cad.placa),stdin); printf("\nDescricao : "); fflush(stdin); fgets(cad.descricao,sizeof(cad.descricao),stdin); cad.ano=year; //gravando no arquivo /** aqui na hora de gravar você deve obedecer uma ordem para que possa ler. você estava gravando em uma ordem e lendo em outra. Eu alterei a ordem */ fprintf(cad_veiculo,"%s" ,cad.modelo); fprintf(cad_veiculo,"%s",cad.placa); fprintf(cad_veiculo,"%s",cad.descricao); fprintf(cad_veiculo,"%d",cad.ano); fflush(stdin); printf("\n\nDESEJA CONTINUAR ?\n\n"); printf("DIGITE QUALQUER TECLA PARA CONTINUAR OU ESC PARA SAIR\n\n"); key=getch(); fclose(cad_veiculo);}while(key!=27); //se precionar ESC sai do programa system("cls"); } Segue com comentários. Alterei a <conio.h> só para testar. Talvez não atenda completamente mas já tem a ideia geral
  22. Não sei se entendi mas seria algo assim: #include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ char cpf[10]; int converte[10],tam,i,j=0; gets(cpf); tam=strlen(cpf); printf("string %s",cpf); for(i=0;i<tam;++i){ if(!isspace(cpf[i])) converte[j++]=cpf[i]-48; } converte[j]='\0'; for(i=0;i<j;++i){ printf("convertido %d ",converte[i]); }} Caso for leitura de arquivo é só usar o fscanf() ao invés do gets();
  23. Primeiramente, qual é exatamente o erro, a partir de qual linha ?(pelo que entendi é na função ALTERAR()). Olhando o teu código, entre algumas coisas estranhas, o que vi de mais grave é que você não fecha o arquivo cad_veiculo na função CADASTRAR

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!