VoZk Posted June 16, 2013 at 05:57 PM Report #513262 Posted June 16, 2013 at 05:57 PM (edited) Boas, Estou com uma duvida em como fazer para escrever numa struct, o que leio de um ficheiro. O problema é este: Tenho uma struct deste género. typedef struct dicionario { char palavra[100]; char definicao[1000]; } Dicionario; E agora tenho que ler de um ficheiro de texto ( com varias palavras e definições deste género: "Engenharia; Ciência do engenheiro") e gravar isso naquela struct mas tenho duas duvidas: 1ª Não sabendo nem o tamanho da palavra nem o tamanho da definição como é que faço para saber que tenho que parae de escrever no array qualquercoisa[0].palavra para começar a escrever no array qualquercoisa[0].definicao? 2ª A alocação de memória tem que ser dinâmica, como faço para á medida que mudar de array ( e enquanto leio do ficheiro claro ) ele aloque memoria para um novo array através de um malloc? Cumps Edited June 16, 2013 at 06:04 PM by thoga31 GeSHi
HappyHippyHippo Posted June 17, 2013 at 04:01 AM Report #513294 Posted June 17, 2013 at 04:01 AM 1ª Não sabendo nem o tamanho da palavra nem o tamanho da definição como é que faço para saber que tenho que parae de escrever no array qualquercoisa[0].palavra para começar a escrever no array qualquercoisa[0].definicao? fscanf(fd, "%100[^;];%1000[^\n]\n", dic.palavra, dic.definição); 2ª A alocação de memória tem que ser dinâmica, como faço para á medida que mudar de array ( e enquanto leio do ficheiro claro ) ele aloque memoria para um novo array através de um malloc? mão é com a função malloc, mas sim com a realloc IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
pmg Posted June 17, 2013 at 09:46 AM Report #513317 Posted June 17, 2013 at 09:46 AM fscanf(fd, "%100[^;];%1000[^\n]\n", dic.palavra, dic.definição); Aqui devia ser 99 e 999. O valor usado no fscanf não entra em consideração com o '\0', mas esse mesmo '\0' é também escrito. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
HappyHippyHippo Posted June 17, 2013 at 10:37 AM Report #513322 Posted June 17, 2013 at 10:37 AM Aqui devia ser 99 e 999. O valor usado no fscanf não entra em consideração com o '\0', mas esse mesmo '\0' é também escrito. é o que dá responder à 5 da matina 😄 IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
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