Olá caros amigos do fórum do Clube do Hardware! Como vocês estão?
Estou começando a aprender sobre manipulação de arquivos em C! Achei a explicação de meu professor muito rápida e confusa, agora estou cheio de dificuldades. Olhei alguns artigos na internet e até vídeos, mas mesmo assim, não consegui dar uma "clareada".
Fizemos em sala de aula, um programa para uma livraria, onde tem várias opções, como Cadastrar Livro, Pesquisar Livro por Título, Código etc... Onde tudo é feito através de leitura/escrita do arquivo .dat (no caso, "livraria.dat")
O programa consiste em uma struct onde os atributos são código, título e preço.
O exercício propõe uma incrementação desse programa, onde o usuário terá que digitar uma porcentagem para aumentar o preço de TODOS os livros do registro.
Por exemplo, há um livro cadastrado , e este custa R$ 100,00. O usuário quer adicionar um aumento nos preços de 5%. O valor do livro passa a ser R$ 105,00. (Também precisa ser alterado o preço dos outros livros).
Me desculpem, mas estou sem o código no momento, qualquer coisa posso enviar depois(Eu acho que dá)!
Eu fiz da seguinte forma.
Criei um vetor onde seu tamanho, é a quantidade de registros. (vetor[qtdRegistros]).
O contador qtdRegistros e a parte de gravar os valor no vetor, utilizei um esquema mais ou menos assim:
float porc;
int x=0;
fflush (stdin); scanf("%f", &porc);
porc = (porc * 100 )+ 1;
while (fread(bla bla bla) == 1){
vetor[x] = livro.preco * porc;
x++;
}
Até ai, tudo bem. Se eu pedi pra ele imprimir os preços do vetor, ele imprime bonitinho. O problema está na hora de salvar no arquivo .dat.
Após eu salvar no vetor os preços já modificados, eu dou um rewind(fplivros), certo. Ai para salvar no arquivo eu uso um while parecido com aquele ali em cima. Dentro do while , eu tentei usar o fwrite, mas ele estava mudando tudo, até o título e código do livro, por um monte de sujeira.
Eu devo utilizar o fwrite, correto? E como deve ser os parâmetros?
;-;
Obrigado desde já!