Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

tcms

linhas de ficheiro para variaveis

Mensagens Recomendadas

tcms    1
tcms

Boas pessoal,

Estou a experimentar C pela primeira vez e deparei-me com um problema que não consigo resolver.

Tenho um ficheiro texto com várias linhas, e o que pretendo é guardar cada linha numa posição dum array de linhas, ou seja, linha 1 -> posição 0 do array de linhas, linha 2 -> posicao 1 do array de linhas, e por aí fora...

O problema é que eu ao fazer fgets acabo por ir buscar todo o conteudo do file, o que não me interessa.. Pois eu quero ir buscar cada linha de cada vez.

Como poderei contornar isto?

Editado por tcms

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1140
HappyHippyHippo

O problema é que eu ao fazer fgets acabo por ir buscar todo o conteudo do file, o que não me interessa.. Pois eu quero ir buscar cada linha de cada vez.

não, o fgets termina a leitura do stream quando uma das seguintes 3 situações ocorrer:

- o stream retorna EOF

- o buffer usado para guardar os dados lidos se encontra cheio (tamanho - 1, porque os dados terminarão sempre como o caracter zero adicionado pela função)

- foi lido o caracter de fim de linha (caracter incluído no buffer resultado)

se o teu fgets está a ler tudo de uma vez é porque o teu ficheiro só tem uma linha

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
tcms    1
tcms

não, o fgets termina a leitura do stream quando uma das seguintes 3 situações ocorrer:

- o stream retorna EOF

- o buffer usado para guardar os dados lidos se encontra cheio (tamanho - 1, porque os dados terminarão sempre como o caracter zero adicionado pela função)

- foi lido o caracter de fim de linha (caracter incluído no buffer resultado)

se o teu fgets está a ler tudo de uma vez é porque o teu ficheiro só tem uma linha

É isso mesmo, estava simplesmente a implementar mal mas o gcc fez o favor de me compilar à mesma..

Obrigado!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
thoga31    594
thoga31

Se não havia problemas de sintaxe nem de tipos nem de nada, o gcc faz o favor de compilar. Os problemas de acesso mal controlado ao buffer e afins só se tornam evidentes na execução uma vez que o gcc não adivinha o que pretendemos fazer.


Knowledge is free!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.