Jump to content

Problema em leitura de ficheiro.


Recommended Posts

Posted

Boas, eu estou a desenvolver um programa que irá ter várias funções associadas a vários ficheiros.

O conteudo dos ficheiros, está associado a listagens de barcos e será algo do género:

- Código do Návio

- Nome do navio

- Tonelagem

- Ano de Produção

- Pais de produção

-Armador

Inicialmente vai ser necessário criar listas selectivas, mas surge um problema.

Este e um excerto daquilo que é mais tipico no ficheiro:

0403 "Tanker"        107160  2006 "Greece"                "Jaguar"

Para fazer esta leitura, faço:

while((fscanf(tipo,"%s %d %s %d %d %s %s",nome,&codigo,tipo_ficheiro,&tonelagem,&fabrico,pais,porto))!=EOF)

Só que as vezes o nome não tem só um substantivo:

0064 "Container Ship" 43567  1986 "Panama"                "Daito Kisen KK"

Assim a operação de leitura começa a falhar alem de que se quiser ver uma listagem de todos os Tanker tenho de inserir "Tanker".

A minha pergunta é como fazer com que ao ele encontrar um espaço entre o nome continue a pensar que é uma string em vez de saltar para a proxima leitura.

Muito obrigado

Posted

Não me ajudo tudo o que ai esta, também está no livro do Luís Damas, e nao mostra como resolver o problema.

Mas no mesmo site encontrei %[],algo que desconhecia, mas continua com a necessidade de inserir incialmente aspas.

Posted

Em vez de separares por espaços, separa por um ; ou outro caracter. Por espaço torna-se bastante difícil, um nome pode ter vários espaços...

Nao posso alterar o ficheiro que os profs me deram.

Vou tentar %[^\0], para ler no ficheiro, e %[^\n], para quando inserir pelo teclado os dados.

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.