lucas_marciano Postado Maio 10, 2010 Denunciar Share Postado Maio 10, 2010 To com uma duvida que, creio eu, muita gente tem.Gostaria de saber como abrir um arquivo, eu tenho que colocar o endereço dele ou simplesmente digitar o nome ?? :unsure: meu codigo é esse : -------------------------------------------------------------------------------------------------------------------------------------------------------#include<iostream> #include<string.h> #include<stdio.h> #include<conio.h> #include <fstream> #include <string> #include <stdio.h> #include <stdlib.h> using namespace std; typedef struct arvore Arv; struct arvore{ char info[30]; char net[30]; char telefone[15]; Arv * esq; Arv * dir; }; Arv * criaArvore(void){ return NULL; } void insereArvore(Arv ** raiz, char nome[], char tel[],char email[]){ if (*raiz == NULL){ *raiz = new Arv; strcpy((*raiz)->info, nome); strcpy((*raiz)->telefone, tel); strcpy((*raiz)->net, email); (*raiz)->esq = NULL; (*raiz)->dir = NULL; } else { if(strcmp(nome,(*raiz)->info) < 0){ insereArvore(&(*raiz)->esq,nome,tel,email); } else{ insereArvore(&(*raiz)->dir,nome,tel,email); } } } void exibeArvorePreOrdem(Arv * raiz){ if(raiz != NULL){ cout << raiz->info << endl; exibeArvorePreOrdem(raiz->esq); exibeArvorePreOrdem(raiz->dir); } } void exibeArvoreEmOrdem(Arv * raiz){ if(raiz != NULL){ exibeArvoreEmOrdem(raiz->esq); cout << raiz->info << endl; exibeArvoreEmOrdem(raiz->dir); } } void exibeArvorePosOrdem(Arv * raiz){ if(raiz != NULL){ exibeArvorePosOrdem(raiz->esq); exibeArvorePosOrdem(raiz->dir); cout << raiz->info << endl; } } void limparArvore(Arv** raiz){ if(*raiz != NULL){ limparArvore(&(*raiz)->esq); limparArvore(&(*raiz)->dir); delete(*raiz); } *raiz = NULL; } Arv* procurarArvore(Arv * raiz,char info[]){ if(raiz != NULL){ if(strcmp(raiz->info,info)==0){ return raiz; } else{ if(strcmp(raiz->info,info)<0){ procurarArvore(raiz->dir,info); } else{ if(strcmp(raiz->info,info)>0){ procurarArvore(raiz->esq,info); } } return raiz; } }else return NULL; } int alturaArvore(Arv* raiz){ if (raiz == NULL) return 0; // altura de árvore vazia é 0 else { int he = alturaArvore(raiz->esq); int hd = alturaArvore(raiz->dir); if (he < hd){ return hd + 1; } else{ return he + 1; } } } void remover(Arv** raiz,char v[]){ if(*raiz != NULL){ if(strcmp((*raiz)->info,v) < 0){ remover(&(*raiz)->esq,v); } else if(strcmp((*raiz)->info,v) > 0){ remover(&(*raiz)->dir,v); } else{ if((*raiz)->esq == NULL && (*raiz)->dir == NULL){ delete (*raiz); *raiz = NULL; } else if((*raiz)->esq == NULL || (*raiz)->dir == NULL){ Arv* aux = *raiz; if((*raiz)->esq == NULL){ *raiz = (*raiz)->dir; delete(aux); } else{ *raiz = (*raiz)->esq; delete(aux); } } else { Arv* aux = (*raiz)->esq; while(aux->dir != NULL){ aux = aux->dir; } char aux2[30]; strcpy(aux2, aux->info); strcpy(aux->info,(*raiz)->info); strcpy((*raiz)->info, aux2); remover(&(*raiz)->esq,v); } } } } int main(){ ofstream myfile ("Agenda.txt"); Arv * arv; arv = criaArvore(); int op, alt = 0, cont = 0; bool sair = false; do{ if (myfile.is_open()){ cout << "\t_Arvore Binaria_ \n\n" << endl; cout << "1. Insere na Arvore "<<endl; cout << "2. Pre-Ordem " << endl; cout << "3. Em-Ordem " << endl; cout << "4. Pos-Ordem " << endl; cout << "5. Liberar Arvore " << endl; cout << "6. Procurar Elementos " << endl; cout << "7. Altura da arvore " << endl; cout << "8. Eliminar um elemento " << endl; cout << "9. Mostrar arquivo salvo " << endl; cout << "10. EXIT \n\n" << endl; cout << "Entre com a opcao: "; cin >> op; getchar(); switch(op){ case 1: { system("cls"); char nome[30],tel[15],email[30]; cout << ". Digite o nome: " << endl; gets(nome); cout << ". Digite o telefone: " << endl; gets(tel); cout << ". Digite o e-mail: " << endl; gets(email); myfile << ".Nome: "; myfile << nome << "\n"; myfile << ".Telefone: "; myfile << tel << "\n"; myfile << ".Email: "; myfile << email << "\n"; insereArvore(&arv,nome,tel,email); myfile << "\n------------------------\n"; break; } case 2: system("cls"); cout << "--- Pre-ordem ---" << endl; exibeArvorePreOrdem(arv); break; case 3: system("cls"); cout << "--- Em-ordem ---" << endl; exibeArvoreEmOrdem(arv); break; case 4: system("cls"); cout << "--- Pos-ordem ---" << endl; exibeArvorePosOrdem(arv); break; case 5: system("cls"); if(arv == NULL){ cout << "Arvore vazia "<<endl; break; }else limparArvore(&arv); cout << "Arvore Limpa "<<endl; break; case 6: { system("cls"); char elemento[30]; Arv* aux; cout << "Entre com o elemento a procurar: " << endl; gets(elemento); aux = procurarArvore(arv,elemento); if (aux == NULL){ cout << "Elemento não encontrado." << endl; } else{ cout << "Elemento " << elemento << " existe." << endl; } break; } case 7: system("cls"); alt = alturaArvore(arv); if (alt <= 0){ cout << "Arvore Vazia " << endl; cout << "\n\n"; } else{ cont = cont + alt; cout << "Altura da arvore: "<< cont; } cout << "\n\n\n"; break; case 8: { system("cls"); char val[30]; cout << "Entre com o elemento a ser eliminado: " << endl; gets(val); remover(&arv,val); break; } case 9: { ifstream iFile( "Agenda.txt" ); char nome2[ 25 ]; while ( iFile && !iFile.eof() ) { iFile >> nome2; cout << "Nome: " << nome2; } } case 10: system("cls"); sair = true; break; default: system("cls"); cout << "Opcao errada\n\n\n" << endl; myfile.close(); break; } } else cout << "Unable to open file"; }while(!sair); return 0; }-------------------------------------------------------------------------------------------------------------------------------------------------------o "case 9" deveria ler o arquivo mas quando entro nele ele simplesmente fecha .... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
lucas_marciano
To com uma duvida que, creio eu, muita gente tem.
Gostaria de saber como abrir um arquivo, eu tenho que colocar o endereço dele ou simplesmente digitar o nome ??
:unsure:
meu codigo é esse :
-------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------
o "case 9" deveria ler o arquivo mas quando entro nele ele simplesmente fecha ....
Link para o comentário
Compartilhar em outros sites
0 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.