Ir para conteúdo

POWERED BY:

Arquivado

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

Oraf

nao consigo ler ficheiro completo

Recommended Posts

Boas, num trabalho de c++ k estou a fazer tenho 2 programas um k gera tipos de carros e semaforos e de seguida sao guardados num ficheiro txt...

o segundo programa tem de ir busacar esses dados ao ficheiro e consoante o semaforo assim atuar..

o programa começa por ir buscar a primeira linha do ficheiro e comparar com semaforo1 2 3 ou 4, ao fim disso entra numa funçao k vai correr o txt ate encontrar outra vez um semaforo, kd encontra sai dessa funçao e volta para a do semaforo, o problema e k esta sempre a ir busacar o primeiro semaforo..

 

int compare(string lin)
{
  string semaforo1("semaforo1");
  string semaforo2("semaforo2");
  string semaforo3("semaforo3");
  string semaforo4("semaforo4");
  
  
ifstream ff;

ff.open("C:\\trabalho\\uuuuu\\uuuuu\\semaforo.txt",ios::_Nocreate);
  getline (ff,line);
	
	
    cout<<""<<line<<"xx"<<endl;
	if (line.compare(semaforo1) == 0)
	{
		
	cout<<"tou no compare semaforo1"<<endl;
	return 1;
	}
	
	else if (line.compare(semaforo2) == 0)
	{
		
	cout<<"tou no compare semaforo2"<<endl;
	return 2;
	}
	else if (line.compare(semaforo3) == 0)
	{
	cout<<"tou no compare semaforo3"<<endl;
	return 3;
	}
	else if (line.compare(semaforo4) == 0)

	return 4;

}
//______________________________________________________________________________________
	
void peras(string line);

void carro()
	
		string line;
		
  ifstream ff;
  ff.open("C:\\trabalho\\uuuuu\\uuuuu\\semaforo.txt",ios::_Nocreate);
 
		cout<<"tou no carro"<<endl;
		
		
		while (!(line.compare(semaforo1)== 0) ||(line.compare(semaforo2)== 0) || (line.compare(semaforo3)== 0)||(line.compare(semaforo4)== 0))
		{
			
                                    getline (ff,line);
		
				
		
			                             if(line.compare(ll) == 0)
								{   
							cout <<"veiculo ligeiro"<< "\n";
						  						


								}
							else
 
									if(line.compare(mm) == 0)
											 {
										cout <<"mata velhos encontrado"<< "\n";
										
	
											 }
									else
		 
										if(line.compare(pp) == 0)
											{ 
										
										cout <<"camiao"<< "\n";
										
		
										}
																		};
						
			cout<<"\n ACabei"<<endl;
			cout<<""<<line<<endl;//**aqui a linha que da e o proximo semaforo mas quando entra na funçao peras da outra vez o primeiro semaforo
			peras();		
		}	

//_______________________________________________________________________________________
void peras(string line)
{
		switch(compare (line))
		{

		case 1:
			{
				
				cout<<"tou no peras semaforo1"<<endl;
			        carro();
			        break;
		         }
		case 2:
			{ 
				cout<<"tou no peras semaforo2"<<endl;
				carro();				
				break;
			   }
                case 3:
			{
				cout<<"tou no peras semaforo3"<<endl;
				carro();				
				cout<<"vai acabar"<<endl;
				break;
			   }

		}
}

ou seja se o primeiro semaforo for semaforo2 ele entra na funçao carro corre o txt ate xegar a por exemplo semforo1, no final da funçao carro diz k a linha onde esta e semaforo1 mas kuando vai para a funçao peras vai buscar outra vez o semaforo 2 e sempre assim...nao sai deste ciclo...

desde ja agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou muito confuso, não entendi o que você quer que os programas façam...

Mas encontrei um erro.

Abaixo da linha que comentaste:

/**aqui a linha que da e o proximo semaforo mas quando entra na funçao peras da outra vez o primeiro semaforo

chamas a função "peras", mas sem argumentos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois realmente tem.

eu tenho um txt k contem informaçao de semaforos e carros..

 

deste genero

semaforo1

veiculo_ligeiro

veiculo_pesado

semaforo2

motociclo

veiculo_pesado

semforo3

....

 

 

o k se passa e k eu vou buscar a primeira linha do ficheiro para a funçao compare, depois passa para a funçao peras e consuante o semaforo ele assim escolhe e entra na funçao carro, o problema ta apartir daki, ele corre a funçao carro e no final kuando a funçao axa a linha semafor2 sai de carro e volta para peras, mas em vez de verificar k e semaforo 2 ele vai buscar de novo a primeira linha ou seja semaforo1..e nao passa daki, sempre k volta a funçao peras volta como semforo1..

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.