Ir para conteúdo
Fórum Script Brasil

anderson__GO

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre anderson__GO

anderson__GO's Achievements

0

Reputação

  1. Se eu quero ler desde o arquivo eu crio um ponteiro tipo ifstream que é de entrada, ou seja a entrada se produzirá desde o arquivo en vez do teclado. então eu faço: ifstream fin( "arquivo.txt" ); Com isso agora eu posso usar fin igual que cin, si com cin eu tivesse que ler um nome eu faço cin >> nome;, vamos supor que no arquivo tem uma só linha na qual tem um nome, "Gilberto" por exemplo., é só fazer fin >> nome; e agora "Gilberto" vai parar em nome que claramente deve ser um string ou char[]. É muito importante você fechar o arquivo rapidamente ao terminar de editar ou não se guarda as mudanças que você realiza. Recomendo abrir, ler um ou vários nomes e fechar, mais importante ainda si for no processo de escritura, pois si não fazer fout.close() o nome não aparecerá no arquivo por que não se salvou, tem claro que fout.close() é como quando você termina de editar um arquivo no notepad e tem que escolher salvar texto. Si eu quiser escrever algo no arquivo eu crio um arquivo de saida, tipo ofstream fout, e posso abrir ele depois com fout.open("arquivo.txt");. Os nomes fout e fin são como cout e cin, porem cout é console output e cin é console input, então eu dou esses nomes fout e fin para parecer a cout e cin, fout é file output, e fin é file input, você pode dar o nome que você quiser, como entrada e saída. ;) Agora vamos ver o ponteiro genérico, ele serve tanto para entrada como para saída, mas devemos indicar com os flags si queremos só para entrada, só para saída ou incluso para ambas coisas: fstream arquivoIO( "arquivo.txt", std::fstream::in | std::fstream::out ) ; veja que std::fstream::in e std::fstream::out estão separados pela barra '|' e não por virgula, todos os flagas vao separados por essa barra no segundo parâmetro do construtor. Vamos ver mais exemplos: fstream arquivoIO( "arquivo.txt", std::fstream::in ) ; // somente para saida fstream arquivoIO( "arquivo.txt", std::fstream::out ) ; // somente entrada fstream arquivoIO( "arquivo.txt", std::fstream::in | std::fstream::app ) ; //modo saída e o conteúdo se inserta no final, nunca borra o que já esta lá, só agrega. fstream arquivoIO( "arquivo.txt", std::fstream::out | std::fstream::trunc ) ; //borra tudo o que tiver lá no arquivo(sobrescreve) A um ponteiro de saída eu também posso obrigar ele a que seja usado para entrada ou vice-versa: ifstream fin( "arquivo.txt",std::fstream::out | std::fstream::app ); // posso ler e agregar conteúdo. você deve saber que si eu uso certos flags o ponteiro começa em diferentes partes do arquivo, por exemplo si vou ler ou truncar, ele começa no inicio do arquivo, si eu vou usar app, ou at end ele começa no final do arquivo, pois queremos adicionar conteúdo, é como si eu quero escrever algo em uma folha usada, eu me dirijo ao final e lá começo escrever.¡, então sabendo isso você deve escolher o modo de abertura correto para usá-lo si não você não conseguirá ler ou escrever nada no arquivo. O ultimo ponto a ser considerado é a tal função excluir. Em um arquivo você não pode excluir nada, você pode marcar essa linha como excluída mudando por exemplo o numero do voo a 000 por exemplo, isso quer dizer que o voo esta cancelado, si não a solução menos elegante porem a mais limpa é mudar tudo a um novo arquivo, cargando tudo na memoria, borrando o que você quer, eliminando o arquivo original e criando un novo no qual você volta a inserir os dados e volta a por nele o mesmo nome. Será esse o verdadeiro motivo do qual facebook não borra nossos dados realmente? >_< Eu gosto de por um caractere adiante da linha a excluir, por exemplo '*', si eu ponho * adiante da linha quer dizer que esta "excluído", eu leio somente esse caracter e o comparo com '*' e si não é verdadero então posso ler o resto, si não está excluído mudo isso para um simples espaço, por algo se chama excluído e não borrado. >_< Os que tem * são os excluídos. Faça provas com isso que te comentei, si você está trabalhando com C++ use streams que é bem melhor que usar a estrutura FILE. Sorte. Para saber mais-> fstream Cara mais uma vez muito obrigado por tudo vou seguir suas dicas. grato por tudo, que deus lhe abençoe.
  2. Cara sem palavras quanto a seu conhecimento, fiquei até com vergonha do eu estava fazendo, é que sou iniciante ainda em c/c++, mais agradeço de coração pela sua boa vontade cara vlw mesmo. agora tenho que pesquisar estas funções que você utilizou para poder entender. Pois tem muita coisa ai que não vi na facu ainda, vou correr atras para poder fazer a parte que ainda falta EXCLUIR CADASTRO(); mais agradeço pela força e desculpa pela minha inexperiência.
  3. 1. Fazer um programa em Linguagem C que criem uma estrutura de dados voo (struct voo) para a empresa VOEBEM, que servirá para implementar funções para controle da lista dos voos. A estrutura voo deve ser implementada de forma dinâmica e deve conter os seguintes dados:  número do voo;  data do voo;  horário do voo;  aeroporto de Saída;  aeroporto de Chegada;  rota;  tempo estimado de voo;  passageiros a bordo; 2. Implementar a função cadastrarVoo() que deve permitir o cadastro de um novo voo; 3. Implementar a função consultaVoo() que deve permitir obter as informações do voo com base na digitação do número do voo; 4. Implementar a função removeVoo() que permita a exclusão de um determinado voo. já consegui salvar tudo no txt mais não estou conseguindo implementar a função consulta, se puder me ajudar ficarei muito agradecido. OBS: estou usando c++. Segue o codigo. #include <iostream> // Inclusao das bibliotecas #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string> #include <fstream> #define SIZE 200 #include <iomanip> using namespace std; struct voo{ // criação da estrutura struct voo char numero[3]; // variavel numero[3] tipo inteira com 3 posições char data[10]; // variavel data[10] tipo char com 10 posições char horario[5]; // variavel horario[5] tipo char com 5 posições char tempo_voo[5]; // varialvel tempo_voo[5] tipo char com 5 posições char aeroporto_saida[20]; // variavel aeroporto_saida[20] tipo char com 20 posições char aeroporto_chegada[20]; // variavel aeroporto_chegada[20] tipo char com 20 posições char rota [30]; // varialvel rota[10] tipo char com 10 posições char passageiro_bordo[40]; // variavel passageiro_bordo[20] tipo char com 20 posições }; void cadastrarvoo(); // Declaração global das funções void consultarvoo(); void excluirvoo(); void menu(); void selecao(); int i,num; FILE *arq; char buff[100]; char *texto; FILE *arqLer; char str[100]; int main() // inicio da função principal { menu(); system("pause"); return 0; } void menu(){ int menu; cout<<"\n ========================"; cout<<"\n Bem Vindo a VOEBEM \n"; // printando na tela cout<<" ========================\n\n"; cout<<"\n ======================="; cout<<"\n Efetuar Cadastro:\n"; // printando na tela cout<<" =======================\n\n"; cout<<" 1-) Deseja Cadastrar Voo: "<<endl; cout<<" 2-) Deseja Consultar Voo: "<<endl; cout<<" 3-) Deseja Excluir Voo: "<<endl<<endl; selecao(); } void selecao(){ int opcao; cout<<" Opcao: "; cin>>opcao; system("cls"); switch(opcao){ case 1: { cadastrarvoo(); menu(); break; } case 2: { consultarvoo(); break; } case 3: { excluirvoo(); break; } } } void cadastrarvoo(){ int num; do{ struct voo inform; // Declaração da struct voo cad if ((arq = fopen("arquivo.txt", "w")) == NULL ) { cout<<" Arquivo não existe! "<<endl; system("pause"); exit(1); } cout<<endl; cout<<" Numero do voo: "; // solicitanto o numero de voo fflush(stdin); gets(inform.numero); cout<<" Nome do Passageiro: "; // solicitando o nome do passageiro fflush(stdin); // limpando o buffer do teclado gets(inform.passageiro_bordo); cout<<" Data do Voo: "; // solicitando a data fflush(stdin); // limpando o buffer do teclado gets(inform.data); cout<<" Horário do Voo: "; // solicitando o horário do voo fflush(stdin); // limpando o buffer do teclado gets(inform.horario); cout<<" Tempo Estimado do Voo: "; // solicitando o tempo do voo fflush(stdin); // limpando o buffer do teclado gets(inform.tempo_voo); cout<<" Aeroporto de Saida: "; // solicitando o aeroporto de saida fflush(stdin); // limpando o buffer do teclado gets(inform.aeroporto_saida); cout<<" Aeroporto de Chegada: "; // solicitando o aeroporto de chegada fflush(stdin); // limpando o buffer do teclado gets(inform.aeroporto_chegada); cout<<" Rota do Voo: "; // solicitando a rota gets(inform.rota); // alocando solicitação da rota fputs(inform.numero,arq); fputs("\n",arq); fputs(inform.passageiro_bordo,arq); fputs("\n",arq); fputs(inform.data,arq); fputs("\n",arq); fputs(inform.horario,arq); fputs("\n",arq); fputs(inform.tempo_voo,arq); fputs("\n",arq); fputs(inform.aeroporto_saida,arq); fputs("\n",arq); fputs(inform.aeroporto_chegada,arq); fputs("\n",arq); fputs(inform.rota,arq); fputs(" *\n\n",arq); fclose(arq); // fechando o arquivo cout<<endl<<endl<<endl; cout<<" Deseja Cadastrar Novo Voo? "<<endl<<endl; cout<<" 1-) Cadastrar: "<<endl; cout<<" 0-) Voltar ao Menu: "<<endl<<endl; cout<<" Opcao: "; cin>>num; system("cls"); } while(num!=0); system("cls"); } void consultarvoo(void){ struct voo inform; arq = fopen("arquivo.txt", "r"); // Abre o arquivo novamente para leitura if(arq == NULL) { cout<<" Erro na abertura do arquivo"<<endl; system("pause"); exit(1); } //======================================================= int consult; cout<<"Digite o numero do voo: "; cin>>consult; if (strlen(consult, inform.numero) == 0){ // nessa parte do codigo que não consigo comparar a consulta com o numero do arquivo printf("Numero não encontrado\n"); printf("Tente Novamente"); getch(); system("cls"); consultarvoo(); } else //========================================================== cout<<"\n-----------------------------"; cout<<"\n Numero do Voo Encontrado\n\n"; cout<<"\n Numero do Voo: %s ",inform.numero; cout<<"\n Passageiro a Bordo: %s ",inform.passageiro_bordo; cout<<"\n Data do Voo: %s", inform.data; cout<<"\n Horario do Voo: %s ", inform.horario; cout<<"\n Tempo de Voo: %s", inform.tempo_voo; cout<<"\n Aeroporto de Saida: %s", inform.aeroporto_saida; cout<<"\n Aeroporto de Chegada: %s", inform.aeroporto_chegada; cout<<"\n Rota do Voo: %s", inform.rota; getch(); system("cls"); menu(); fclose(arq); }
  4. Boa tarde amigo! seguinte cara sei que ta uma bagunça esse cod pois sou iniciante em programação e c/c++, mais e o seguinte estou fazendo um trabalho na facu que pede o seguinte. 1. Fazer um programa em Linguagem C que criem uma estrutura de dados voo (struct voo) para a empresa VOEBEM, que servirá para implementar funções para controle da lista dos voos. A estrutura voo deve ser implementada de forma dinâmica e deve conter os seguintes dados:  número do voo;  data do voo;  horário do voo;  aeroporto de Saída;  aeroporto de Chegada;  rota;  tempo estimado de voo;  passageiros a bordo; 2. Implementar a função cadastrarVoo() que deve permitir o cadastro de um novo voo; 3. Implementar a função consultaVoo() que deve permitir obter as informações do voo com base na digitação do número do voo; 4. Implementar a função removeVoo() que permita a exclusão de um determinado voo. já consegui salvar tudo no txt mais não estou conseguindo implementar a função consulta, se puder me ajudar ficarei muito agradecido. OBS: estou usando c++.
  5. Galera estou com dificuldade em ler os dados de um txt, o enunciado diz o seguinte. Implementar a função consulta voo() que deve permitir obter as informações do voo com base na digitação do numero de voo. void consultarvoo(){ arq = fopen("cadastro de voo.txt", "r"); cout<<" entre com o numero de voo: "; cin>>num; while((fscanf(arq ,"%s", num)) != EOF ) { cout<<endl; if (arq == NULL){ cout<<" arquivo não existe! "; } string line; ifstream myfile ("cadastro de voo.txt"); // ifstream = padrão ios:in if (myfile.is_open()) { while (! myfile.eof() ) //enquanto end of file for false continua { getline (myfile,line); // como foi aberto em modo texto(padrão) //e não binário(ios::bin) pega cada linha cout << line << endl; } myfile.close(); } } //else cout << " Impossivel Abrir o Arquivo! "; system("pause"); }
×
×
  • Criar Novo...