ClaudioX Postado Dezembro 2, 2004 Denunciar Share Postado Dezembro 2, 2004 Ola pessoal...quem puder me ajudar, valeu mesmo!!!!!!!!Algo:fread(&aux1, sizeof(malas),1,arq1); //ERRO o que é cada cada campo?? if(aux1.carro ==carro){ if (portão==aux1.desem){ cout<<"status OK"; } if (aux1.desem==0); cout<<"reenviada"; else { leia (arq2.aux1); //ERRO em o C?cout<<"Erro encontrado e sendo reportado \n ";cout<<"local incorreto "; else{ Grave (arq2,aux1); //erro em C?? cout<<"Erro encontrado e sendo reportado }Quero escrever o fread e o fwrite de modo que:malas aux1;cliente aux2;FILE *arq1; //registro malasFILE *arq2; //registro clientes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Dezembro 2, 2004 Denunciar Share Postado Dezembro 2, 2004 cara......eu não sei o tipo de variáveis que você usa.......se você puder.......posta o código inteiro ou me passa por email........vamos lá....... fread(void*, size_t, size_t, FILE*) - o primeiro parametro é o endereço da variavel onde fread irá copiar os dados retirados do arquivo.............preste atenção pois terá que ser do mesmo tipo e tamanho que você especificará no próximo parametro........... - o segundo é o tamanho em bytes que você deseja ler dentro do arquivo....... - o terceiro especifica quantas vezes ele vai fazer essa leitura...... - o quarto indica qual arquivo que você deseja fazer a leitura........provavelmente você tenha uma struct chamada "malas"e sua variavel "aux" deve ser do tipo struct malasdentro da sua struct "carro" e "portão" não podem ser strings.........fwrite(const void*, size_t, size_t, FILE*) - o primeiro parametro é o endereço da variavel onde fwrite irá copiar os dados retirados da variavel para o arquivo........... - o segundo é o tamanho em bytes que você deseja escrever dentro do arquivo....... - o terceiro especifica quantas vezes ele vai fazer essa escrita...... - o quarto indica qual arquivo que você deseja fazer a escrita........Obs.: O arquivo deve ser aberto em binário..........pois você está trabalhando com numero de bytes............te+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ClaudioX Postado Dezembro 2, 2004 Autor Denunciar Share Postado Dezembro 2, 2004 Valeew velhino...Se tu tiver de boa... entra no MSN, que vou estar lá...beleza... ate hoje as 6 da tardeT+!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ClaudioX Postado Dezembro 3, 2004 Autor Denunciar Share Postado Dezembro 3, 2004 ow ve se você acha o erro no switchvoid main(){clrscr();cout<<"=========SISTEMA DE CONTROLE E CADASTRO DE MALAS=========";menu();cout<<"\n\nBEM VINDO AO SISTEMA\nDigite 0 para continuar: ";cin>>x;while(x==0) { switch (op){ //erro case case 1: serv1(); break; case 2: serv2(); break; case3: cliente(); break; case4: altera(); break; case5: consultaA(); break; case6: cout<<"digite 0 para continuar ou qualquer tecla para sair:"; break; } cout<<"0- Continuar: "; cin>>x; }}void menu(){ cout<<"\n\n____________________________________________________"; cout<<"\n 1. serv 1"; cout<<"\n 2. serv 2"; cout<<"\n 3. Modulo cliente"; cout<<"\n 4. Consulta"; cout<<"\n 5. altera"; cout<<"\n 6: Sair"; cout<<"\n ___________________________________________________: ";}void serv1(){char x[6];clrscr();cout<<"=========SISTEMA DE CONTROLE E CADASTRO DE MALAS=========";cout<<"\n\n=====Modulo Serv1=====";arq1=fopen("arq1.txt","at+"); rewind(arq1);cout<<"\n0- Cadastrar \n 1- Sair: ";cin>>op;while (op==0) { //o n0 fecha o cadastramento clrscr(); cout<<"=========SISTEMA ========="; cout<<"\n\n=====Modulo de Entrada 1====="; cout<<"\nEntre com o numero de Embarque:\n"; gets(aux1.demb); cout<<"\nEntre com o numero de Desembarque:\n"; gets(aux1.desem); cout<<"\nEntre com o numero do carrinho:\n"; gets(aux1.carro); cout<<"\nEntre com o RG do passageiro:\n"; gets(aux1.RG); //aux1.cod = aux1.RG&&aux1.desem; saco o que quero fazer né?!... como é??? //strcpy(x,aux1.RG); strcpy(aux1.cod, aux1.RG); strcat(aux1.cod, aux1.desem); clrscr(); cout<<"=========SISTEMA ========="; cout<<"\n\n=====Modulo de Entrada 1=====\nRG"; cout<<aux1.RG; cout<<"\ncod ";cout<<aux1.cod; fwrite(&aux1,sizeof(aux1),1,arq1); fclose(arq1); cout<<"\n0- Cadastrar\n 1- Sair: "; cin>>op; }fclose(arq1);} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kandrade Postado Dezembro 3, 2004 Denunciar Share Postado Dezembro 3, 2004 cara....tem uns errinhos no seu código......primeiro entre o while e o switchvocê deve fazer uma leitura para a variavel op......outra.....quando você trabalha com numero de byte em arquivo....que é o caso das funções fwrite......fread........fseek...........entre outras você precisa fazer a abertura do arquivo em binário........sugestão:delete seu arquivo.......e comece do zero............o segundo parametro da função fopen indica como você vai abrir seu arquivo....para abrir em binário você usa "rb+"........se você quiser depois eu te explico cada detalhe..........porem se o arquivo não existir ele retorna NULL e não abre o arquivo.......se você quiser abrir um arquivo para leitura e escrita sem que ele exista você pode usar o parametro "wb+".........ultima coisa.......no parametro 2 da função fwrite você deve usar sizeof(struct "nome dela")...............beleza......... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Dezembro 3, 2004 Denunciar Share Postado Dezembro 3, 2004 beleza amigo, o menu ta abrindo q é uma beleza.O problema é q preciso dele pra ontem.... literalmente... Se tu puder me falar como resolver o:cout<<"\nEntre com o RG do passageiro:\n";gets(aux1.RG); //aux1.cod = aux1.RG&&aux1.desem; strcpy(aux1.cod, aux1.RG); //jogar a 2º na 1º sem perder a 2º...strcat(aux1.cod, aux1.desem);//e adicionar a 1º o valor da outra 2º mantendo a segundajá seria legal... a abertura em binário eu to testando aqui.De qualquer forma, Obrigado mesmo!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodfraga Postado Dezembro 3, 2004 Denunciar Share Postado Dezembro 3, 2004 Uma dica:Identem o código. Fica muuuuuuuuuuuuuito mais legível. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iSoron Postado Dezembro 3, 2004 Denunciar Share Postado Dezembro 3, 2004 Outra dica: usem a tag CODE deste fórum.Fica muito mais legível e organizado, além de preservar a identação original.Eis o código identado corretamente: void main() { clrscr(); cout<<"=========SISTEMA DE CONTROLE E CADASTRO DE MALAS========="; menu(); cout<<"\n\nBEM VINDO AO SISTEMA\nDigite 0 para continuar: "; cin>>x; while(x==0) { switch (op){ //erro case case 1: serv1();break; case 2: serv2();break; case3: cliente();break; case4: altera();break; case5: consultaA();break; case6: cout<<"digite 0 para continuar ou qualquer tecla para sair:";break; } cout<<"0- Continuar: "; cin>>x; } } void menu() { cout<<"\n\n____________________________________________________"; cout<<"\n 1. serv 1"; cout<<"\n 2. serv 2"; cout<<"\n 3. Modulo cliente"; cout<<"\n 4. Consulta"; cout<<"\n 5. altera"; cout<<"\n 6: Sair"; cout<<"\n ___________________________________________________: "; } void serv1() { char x[6]; clrscr(); cout<<"=========SISTEMA DE CONTROLE E CADASTRO DE MALAS========="; cout<<"\n\n=====Modulo Serv1====="; arq1=fopen("arq1.txt","at+"); rewind(arq1); cout<<"\n0- Cadastrar \n 1- Sair: "; cin>>op; while (op==0) { //o n0 fecha o cadastramento clrscr(); cout<<"=========SISTEMA ========="; cout<<"\n\n=====Modulo de Entrada 1====="; cout<<"\nEntre com o numero de Embarque:\n"; gets(aux1.demb); cout<<"\nEntre com o numero de Desembarque:\n"; gets(aux1.desem); cout<<"\nEntre com o numero do carrinho:\n"; gets(aux1.carro); cout<<"\nEntre com o RG do passageiro:\n"; gets(aux1.RG); //aux1.cod = aux1.RG&&aux1.desem; saco o que quero fazer né?!... // como é??? //strcpy(x,aux1.RG); strcpy(aux1.cod, aux1.RG); strcat(aux1.cod, aux1.desem); clrscr(); cout<<"=========SISTEMA ========="; cout<<"\n\n=====Modulo de Entrada 1=====\nRG"; cout<<aux1.RG; cout<<"\ncod ";cout<<aux1.cod; fwrite(&aux1,sizeof(aux1),1,arq1); fclose(arq1); cout<<"\n0- Cadastrar\n 1- Sair: "; cin>>op; } fclose(arq1); }ps.: Já ia esquecendo que não modero essa seção e tentando editar o codigo original. []'siSoron. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodfraga Postado Dezembro 4, 2004 Denunciar Share Postado Dezembro 4, 2004 Você merecia o cargo junto com o Wicker Man! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ClaudioX Postado Dezembro 4, 2004 Autor Denunciar Share Postado Dezembro 4, 2004 Obrigado a todos pelas dicas!!! Acho q até segunda o prog todo tah rodando...Foi mal não ter logado para responder, por isso repito agora a ultima pergunta;como utilizar o strcpy e strcat. no prog fico o Rg+desem+RG denovo...(eu queria RG+desem)e+, se for cadastrar outra pessoa ele mantem (mistura) com a primeira. Se codigo abaixo tiver correto, deve ser o parametros do fread q estao errados,e conforme ensinou kandrade, vou usar wb+.lembrando que, um char precisa d quantos bytes?? cout<<"\nEntre com o RG do passageiro:\n"; gets(aux1.RG); //aux1.cod = aux1.RG&&aux1.desem; strcpy(aux1.cod, aux1.RG); //jogar a 2º na 1º sem perder a 2º... strcat(aux1.cod, aux1.desem);//e adicionar a 1º o valor da outra 2º mantendo a segunda Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ClaudioX
Ola pessoal...
quem puder me ajudar, valeu mesmo!!!!!!!!
Algo:
fread(&aux1, sizeof(malas),1,arq1); //ERRO o que é cada cada campo??
if(aux1.carro ==carro){
if (portão==aux1.desem){
cout<<"status OK";
}
if (aux1.desem==0);
cout<<"reenviada";
else {
leia (arq2.aux1); //ERRO em o C?
cout<<"Erro encontrado e sendo reportado \n ";
cout<<"local incorreto ";
else{
Grave (arq2,aux1); //erro em C??
cout<<"Erro encontrado e sendo reportado
}
Quero escrever o fread e o fwrite de modo que:
malas aux1;
cliente aux2;
FILE *arq1; //registro malas
FILE *arq2; //registro clientes
Link para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
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.