Ir para conteúdo

POWERED BY:

Arquivado

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

LoOoCo

Ler TXT e armazenar N linhas em N Strings

Recommended Posts

Pessoal,

 

Agora tenho outro desafio, preciso ler uma arquivo TXT que poderá ter N linhas, e eu precisarei armazenar em N strings.

 

Fiz um monstrinho com algumas funções que achei e não estou conseguindo fazer funcionar. Se alguém puder ajudar eu agradeço.

 

const int LINE_LENGTH = 100;
char str [LINE_LENGTH];
	FILE *fQtd = NULL;
    fopen_s("c:\\qtd.txt","r");

while( fQtd.getline(str,LINE_LENGTH) ) {
.
.
.
    }
fcloseall();
Obrigado,

LoOoCo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de mais...

fopen_s : http://msdn.microsoft.com/en-us/library/z5hh6ee9(VS.80).aspx

Os argumentos estão errados...

 

OK! Acertei a sintaxe.

 

Fiz alguns testes utilizando apenas o fgets, funcionou bem... mais eu soh estou lendo a primeira linha

 

 

CString caniggia;
   FILE *stream;
   char line[100];

   if( fopen_s( &stream, "C:\\qtd.txt", "r" ) == 0 )
   {
      if( fgets( line, 100, stream ) == NULL)
         printf( "fgets error\n" );
      else
	caniggia = line;
	pCana = GetDlgItem(IDC_EDIT1);
	pCana->SetWindowText(caniggia);
         printf( "%s", line);
      fclose( stream );
   }

Agora quero tentar ler as demais linhas e armazenar em outras variaveis.

1. Consigo fazer isso utilizando apenas fgets ?

2. getline pode ser a solução ? o que preciso fazer para usa-lo ? ja tentei de tudo, mais ele dah pau.

 

Obrigado mais uma vez.

 

Abraços

LoOoCo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente getline não será a solução...

Seu programa está em C, getline é uma da biblioteca <iostream> do C++ (a classe std::istream também tem um menbro getline)

 

você vai precisar de um array, com "nLinhas" strings, concorda?

Então:

for (i=0; i<nLinhas; i++)
{
    for (j=0; ;j++)
    {
        c = fgets(stream);
        if (c == '\n')
            break;
        else
            linhas[i][j] = c;
     }
}

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.