Leo Junio Postado Setembro 11, 2008 Denunciar Share Postado Setembro 11, 2008 Pessoal estou com a seguinte duvida. Estou com um método que imprimi em um Form, logo preciso que seja impresso em um arquivo como faço isto?segue meu codigo abaixo. /** * Imprimir os vertices pendentes no Form1 **/ void TGrafo::VerticesPendentes() { AnsiString Aux = ""; for( int x = 0; x < n; x++ ){ if ( RetornaGrau(x) == 1 ) { Aux = Aux + AnsiString(RetornaNome(x).c_str()) + " "; }//fim if }//fim for Form1->Relatorio->Lines->Add(Aux); }//fim VerticesPendentesCriei um metodo no main q gera o arquivo, mas o metodo acima é void como inserir o resultado no arquivo?Abaixo o main do meu programa#include "grafo.h"#include <iostream> //cin e cout (windows: iostream.h)#include <fstream> //fun ̧~es de arquivo (windows: fstream.h)using namespace std; //=====================================================================// DEFINICOES DE CONSTANTES//=====================================================================#define endl "\n"#define TAB_MENU "\t\t\t\t\t\t"#define TAB "\t"#define MAX_TAM 100void gerarRelatorio(Grafo *g){ //cria e abre um arquivo para a escrita em modo texto ofstream fout ("teste.txt"); //escreve no arquivo fout << "\nNumero de Vertices: " << g->numeroVertice(); fout << "\nNumero de Arestas: " << g->numeroAresta(); fout << "\nNumero de Componetes: " << g->numeroComponente(); fout << "\nO grafo é Regular? "; if (g->Regular()== 0){ fout << "Não" ; } else fout << "Sim" ; fout << "\nO grafo é Nulo? " << g->Nulo(); fout << "\nO grafo é Completo? " ; if (g->Completo()== 0){ fout << "Não"; } else fout << "Sim"; fout << "\nO grafo é Simples? "; if (g->Simples()== 0){ fout << "Não"; } else fout << "Sim"; fout << "\nO grafo é Euleriano? "; if (g->Euleriano()== 0){ fout << "Não"; } else fout << "Sim"; fout << "\nO grafo é Unicursal? "; if (g->Unicursal()== 0){ fout << "Não"; } else{ fout << "Sim"; } fout << "\nO grafo possui condiçoes para ser Hamiltoniano? "; if (g->Hamiltoniano() == 0){ fout << "Não"; } else{ fout << "Sim"; }// fout << "\nGrafo Complementar: " << g->Complementar(); //... /*//fout << "\nLISTA ADJ:"; for(int i = 0; i < g->numeroVertice(); i++){ fout << "\nVertice(" << i << "):" //.... }*/ // fecha o arquivo fout.close();} //=====================================================================// FUNCAO PRINCIPAL//=====================================================================int main(int argc, char **argv){ Grafo *g = new Grafo; char opcao; FILE *arq; //Validar o arquivo que contem o grafo if(argc != 2){ cout << endl << "ERRO: Sintaxe ./main <NOME_ARQUIVO_GRAFO>" << endl << endl; exit(1); }else{ arq = fopen(argv[1],"r"); if (arq == NULL){ cout << endl << "ERRO: O arquivo " << argv[1] << " não existe." << endl << endl; exit(1); } fclose(arq); } //Leitura do grafo g->lerGrafo(argv[1]); do{ clrscr(); cout << "================================" << endl; cout << "TP1 - GTC - PUC MINAS" << endl; cout << "================================" << endl; cout << endl << endl << endl; cout << TAB_MENU << "(I)Imprimir Grafo" << endl; cout << TAB_MENU << "(2)Relatorio" << endl; cout << TAB_MENU << "(3)Grafo Complementar" << endl; // cout << TAB_MENU << "(1)Verifica se Grafo é Complementar" << endl; cout << TAB_MENU << "(S)Sair" << endl; opcao = toupper(getch()); clrscr(); cout << "================================" << endl; cout << "TP1 - GTC - PUC MINAS" << endl; cout << "================================" << endl; cout << endl << endl << endl; if(opcao == 'I'){ g->imprimir(); getch2(); } if(opcao == '2'){ gerarRelatorio(g); getch2(); } if(opcao == '3'){ cout << "\nGrafo Complementar: "; Grafo complementar = g->getComplementar(); complementar.imprimir(); getch2(); } // if(opcao == '1'){ // printf("%d",g->Complementar()); //getch2(); // } }while(opcao != 'S'); clrscr(); return 0;}//--------------------------------------------------------------------se precisar mando a classe grafo.ccto compilando no linux Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Leo Junio
Pessoal estou com a seguinte duvida. Estou com um método que imprimi em um Form, logo preciso que seja impresso em um arquivo como faço isto?
segue meu codigo abaixo.
/**
* Imprimir os vertices pendentes no Form1
**/
void TGrafo::VerticesPendentes() {
AnsiString Aux = "";
for( int x = 0; x < n; x++ ){
if ( RetornaGrau(x) == 1 ) {
Aux = Aux + AnsiString(RetornaNome(x).c_str()) + " ";
}//fim if
}//fim for
Form1->Relatorio->Lines->Add(Aux);
}//fim VerticesPendentes
Criei um metodo no main q gera o arquivo, mas o metodo acima é void como inserir o resultado no arquivo?
Abaixo o main do meu programa
#include "grafo.h"
#include <iostream> //cin e cout (windows: iostream.h)
#include <fstream> //fun ̧~es de arquivo (windows: fstream.h)
using namespace std;
//=====================================================================
// DEFINICOES DE CONSTANTES
//=====================================================================
#define endl "\n"
#define TAB_MENU "\t\t\t\t\t\t"
#define TAB "\t"
#define MAX_TAM 100
void gerarRelatorio(Grafo *g){
//cria e abre um arquivo para a escrita em modo texto
ofstream fout ("teste.txt");
//escreve no arquivo
fout << "\nNumero de Vertices: " << g->numeroVertice();
fout << "\nNumero de Arestas: " << g->numeroAresta();
fout << "\nNumero de Componetes: " << g->numeroComponente();
fout << "\nO grafo é Regular? ";
if (g->Regular()== 0){
fout << "Não" ;
}
else
fout << "Sim" ;
fout << "\nO grafo é Nulo? " << g->Nulo();
fout << "\nO grafo é Completo? " ;
if (g->Completo()== 0){
fout << "Não";
}
else
fout << "Sim";
fout << "\nO grafo é Simples? ";
if (g->Simples()== 0){
fout << "Não";
}
else
fout << "Sim";
fout << "\nO grafo é Euleriano? ";
if (g->Euleriano()== 0){
fout << "Não";
}
else
fout << "Sim";
fout << "\nO grafo é Unicursal? ";
if (g->Unicursal()== 0){
fout << "Não";
}
else{
fout << "Sim";
}
fout << "\nO grafo possui condiçoes para ser Hamiltoniano? ";
if (g->Hamiltoniano() == 0){
fout << "Não";
}
else{
fout << "Sim";
}
// fout << "\nGrafo Complementar: " << g->Complementar();
//...
/*//fout << "\nLISTA ADJ:";
for(int i = 0; i < g->numeroVertice(); i++){
fout << "\nVertice(" << i << "):"
//....
}*/
// fecha o arquivo
fout.close();
}
//=====================================================================
// FUNCAO PRINCIPAL
//=====================================================================
int main(int argc, char **argv){
Grafo *g = new Grafo;
char opcao;
FILE *arq;
//Validar o arquivo que contem o grafo
if(argc != 2){
cout << endl << "ERRO: Sintaxe ./main <NOME_ARQUIVO_GRAFO>" << endl << endl;
exit(1);
}else{
arq = fopen(argv[1],"r");
if (arq == NULL){
cout << endl << "ERRO: O arquivo " << argv[1] << " não existe." << endl << endl;
exit(1);
}
fclose(arq);
}
//Leitura do grafo
g->lerGrafo(argv[1]);
do{
clrscr();
cout << "================================" << endl;
cout << "TP1 - GTC - PUC MINAS" << endl;
cout << "================================" << endl;
cout << endl << endl << endl;
cout << TAB_MENU << "(I)Imprimir Grafo" << endl;
cout << TAB_MENU << "(2)Relatorio" << endl;
cout << TAB_MENU << "(3)Grafo Complementar" << endl;
// cout << TAB_MENU << "(1)Verifica se Grafo é Complementar" << endl;
cout << TAB_MENU << "(S)Sair" << endl;
opcao = toupper(getch());
clrscr();
cout << "================================" << endl;
cout << "TP1 - GTC - PUC MINAS" << endl;
cout << "================================" << endl;
cout << endl << endl << endl;
if(opcao == 'I'){
g->imprimir();
getch2();
}
if(opcao == '2'){
gerarRelatorio(g);
getch2();
}
if(opcao == '3'){
cout << "\nGrafo Complementar: ";
Grafo complementar = g->getComplementar();
complementar.imprimir();
getch2();
}
// if(opcao == '1'){
// printf("%d",g->Complementar());
//getch2();
// }
}while(opcao != 'S');
clrscr();
return 0;
}//--------------------------------------------------------------------
se precisar mando a classe grafo.cc
to compilando no linux
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.