Ir ao conteúdo
  • Cadastre-se

C++ Variavel de .txt não retorna nada


Vinicius Antony

Posts recomendados

Bom preciso que determinada linha do meu .txt seja gravada em uma váriavel.

No exemplo abaixo, quero que LINHA receba o que tiver na linha 4 do .txt, só que a váriavel LINHA não está mostrando nada quando chamo ela pelo cout e se coloco o cout dentro do while/if ele me retorna todo o .txt

Em outra parte do meu sistema, uso o mesmo código e funciona perfeitamente, não sei porque veio dar problema aqui.

 

   	ARQUIVO.open("arquivo.txt");
	CONTADOR = 0;
   	while( ! ARQUIVO.eof() ){
    getline(ARQUIVO, LINHA);
    CONTADOR++;
    if(CONTADOR=4);}
   	
	ARQUIVO.close();
	
   	cout << "LINHA: " << LINHA;

Grato se alguém puder me ajudar.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Vinicius Antony       Ali hum erro quase imperceptível  ,  fazendo a identação consegue-se perceber que no  if  tem algumas coisas diferentes , por exemplo dentro dos parenteses a variável contador está recebendo o valor quatro , sem fazer nenhuma comparação , e também quando se faz uma comparação usando if , logo em seguida é costume colocar o que fazer depois dessa comparação de acordo com o resultado obtido , e ali não diz o que fazer , apenas termina a linha com um ponto_e_vírgula ,  assim ele todo o arquivo sem fazer mais nada e ao encontrar o eof , sai do loop while , e imprime o conteúdo da variável linha , que aí será o eof não imprimível , então creio que precisaria colocar mais hum sinal de igualdade junto com aquele outro ali no  if  e também o comando break antes do ponto_e_vírgula nessa mesma linha , para sair desse loop while e aí a variável linha ainda conteria o valor lido na quarta linha do arquivo  .  então seu código poderia ser assim  :

#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define  cls system("cls");  /* cls;  limpa a tela                             */
#define u GetStdHandle(STD_OUTPUT_HANDLE)/* pegar o controle do dispositivo    */
#define gotoxy_2(x,y) {COORD c={x,y};SetConsoleCursorPosition(u,c);}/* imprimir em qq posiç da tela do console        */
#define textcolor_2(l,f) SetConsoleTextAttribute(u,l+(f<<4));/* imprimir letrar coloridas com o fundo também colorido */

ARQUIVO.open("arquivo.txt"); /* abre o arquivo                                  */
CONTADOR = 0;                /* inicializa o contador com valor zero            */
while( ! ARQUIVO.eof() ){    /* lê o arquivo até encontrar o eof                */
    getline(ARQUIVO, LINHA); /* pega uma linha inteira do arquivado             */
    CONTADOR++;              /* incrementa o contador                           */
    if(CONTADOR==4)break;    /* se contador recebendo o valor Quatro            */
    /* Aqui erro !  if terminando com ponto e vírgula e sem informar o que fazer*/
    /* creio que faltou colocar hum break antes do ponto e vírgula              */
}                            /* final do loop while                             */
ARQUIVO.close();             /* fechando o arquivo                              */
cls;
gotoxy_2(30,12);             /* para centralizar o texto na tela                */
textcolor_2(12,14);          /* imprime letras vermelhas no fundo amarelo       */
printf("Centralizando o texto no meio da tela !");
cout << "LINHA: " << LINHA;  /* imprimir a última coisa lida no arquivo ,       */
                             /* que foi o eof                                   */

 

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@yuri_carneiro    ali em cima tem essas linhas  

#include <stdio.h>
#include <windows.h>
#define u GetStdHandle(STD_OUTPUT_HANDLE)/* pegar o controle do dispositivo    */
void gotoxy_2(int x, int y) {COORD c={x,y};SetConsoleCursorPosition(u,c);}/* imprimir em qq posiç da tela do console        */
int main(){
    gotoxy_2(30,12);             /* para centralizar o texto na tela                */
    printf("Centralizando o texto no meio da tela !\n");
}

então ali o texto será impresso começando a partir do meio da tela .

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...