Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lbr

Leitura de string em arquivo no C++

Recommended Posts

E ai pessoal,

 

tenhum um trabalho pra entregar hj, mas não to conseguindo capturar strings separadas do arquivo

que estou fornecenso como entrada...

 

eu estava fazendo assim...

 

segue o codigo q eu estava usando para abertura e leitura

 

ifstream entrada (dados, ifstream::in);
  entrada.getline(dados, '\n');

for(i = 0; i<n; i++)
	{
	   cont = 0;
	   while (entrada.good())	 // loop while extraction from file is possible
  {
	entrada.get©;	   // get character from file
	cout << c;
	  
	//c.get(dados);
	
	
  }

	   
	   entrada.get©;
	   dados = " ";
	   while(c!='\n')
		 { 
			cout << c;
			if(c==' ')
			  {dados[aux] = '\0';
			  cout << dados << endl;
			  system("PAUSE");
				switch(cont)
				  {
					case 0: 
					  prod.id = atoi(dados); 
					  break;
					case 1: 
					  prod.r = atoi(dados); 
					  break;
					case 2: 
					  prod.p = atoi(dados); 
					  break;
					case 3: 
					  prod.q = atoi(dados); 
						break;
					default: 
					  cout<< "Erro no arquivo de entrada"<<endl;
					  exit(1);
				  }
				cont++;
			  }aux++;
			 dados[aux] = c;
			entrada.get©;
		 }	

		 T.push_back (prod);
	}

dados consiste em um arranjo de char

 

vlw :))

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo jeito sempre tem, mas eu prefiro fazer isso em C,

acho mais pratico...

 

para tanto, você prescisa incluir a biblioteca cstdio;

segue o codigo

 

#include <cstdio>

 

FILE *'nome da variavel';

 

//testa se existe erro ao abrir o arquivo

if(!('nome da variavel' = fopen(vetor de char ou nome do arquivo, "r")))

{

 

exit(1);

}

 

//captura cada string

fscanf('nome da variavel', "%s", &vetor de char);

 

 

//para fazer a leitura

//usa um while ou for, no caso do while pode-se usar como condicao: !feof(entrada)

//a qual testa enquanto o arquivo nao acaba

{

cont = 0; //controla foi captado e onde sera armazenado

 

//uso de um do while para ler cada string

do{

//captura cada string

fscanf('nome da variavel', "%s", &vetor de char);

 

 

 

 

 

 

}while(fgetc('nome da variavel')!='\n');/*coloca condicao

quebra de linha, para permitir ler uma linha de cada vez*/

 

}

 

E ai pessoal,

 

tenhum um trabalho pra entregar hj, mas não to conseguindo capturar strings separadas do arquivo

que estou fornecenso como entrada...

 

eu estava fazendo assim...

 

segue o codigo q eu estava usando para abertura e leitura

 

ifstream entrada (dados, ifstream::in);
  entrada.getline(dados, '\n');

for(i = 0; i<n; i++)
	{
	   cont = 0;
	   while (entrada.good())	 // loop while extraction from file is possible
  {
	entrada.get©;	   // get character from file
	cout << c;
	  
	//c.get(dados);
	
	
  }

	   
	   entrada.get©;
	   dados = " ";
	   while(c!='\n')
		 { 
			cout << c;
			if(c==' ')
			  {dados[aux] = '\0';
			  cout << dados << endl;
			  system("PAUSE");
				switch(cont)
				  {
					case 0: 
					  prod.id = atoi(dados); 
					  break;
					case 1: 
					  prod.r = atoi(dados); 
					  break;
					case 2: 
					  prod.p = atoi(dados); 
					  break;
					case 3: 
					  prod.q = atoi(dados); 
						break;
					default: 
					  cout<< "Erro no arquivo de entrada"<<endl;
					  exit(1);
				  }
				cont++;
			  }aux++;
			 dados[aux] = c;
			entrada.get©;
		 }	

		 T.push_back (prod);
	}

dados consiste em um arranjo de char

 

vlw :))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Metodo simples rapido e prático:

 

void learquivo(char *vet,char arqorigem[20])
{
	fstream arqB;
	arqB.open(arqorigem,ios::in);
	char n[70];
	int i=0;
	while(!arqB.eof())
	{
		arqB.read(n,1);
		n[1]=0;
		if(!arqB.eof())
		{
			vet[i]=n[0];
			i++;
		}
	}
	vet[i]=0;
	cout.flush();
	arqB.close();
		
}

Para um melhor entendimento do metodo de leitura e a utilização da linha:

void learquivo(char *vet,char arqorigem[20])

Veja o seguinte tópico:

http://forum.imasters.com.br/index.php?showtopic=314205

 

Antes de fazer as modificações exigidas no trabalho do link, aloquei dentro de um vetor o conteúdo do arquivo txt, acredito que seja isso que deseja.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.