Rulha Posted May 13, 2011 at 09:35 PM Report #387498 Posted May 13, 2011 at 09:35 PM 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
josevellozo Posted May 14, 2011 at 08:54 AM Report #387533 Posted May 14, 2011 at 08:54 AM Aconselho uma leitura: https://wiki.portugal-a-programar.pt/dev_geral/c/ficheiros/ http://be-actual.blogspot.com/
Rulha Posted May 14, 2011 at 10:35 AM Author Report #387538 Posted May 14, 2011 at 10:35 AM 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.
KiNgPiTo Posted May 14, 2011 at 10:40 AM Report #387539 Posted May 14, 2011 at 10:40 AM 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...
Rulha Posted May 14, 2011 at 11:17 AM Author Report #387544 Posted May 14, 2011 at 11:17 AM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now