Jump to content
tcms

linhas de ficheiro para variaveis

Recommended Posts

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?

Edited by tcms

Share this post


Link to post
Share on other sites
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

Edited by HappyHippyHippo

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

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.