Estou iniciando em C e estou com o seguinte problema.
Eu preciso salvar strings em um arquivo txt ordenado em pilha, até aí tudo bem, porém eu preciso que quando eu abra o programa novamente, ele continue empilhando sempre no topo, porém ele está sobrescrevendo o que já estava armazenado.
Fiz o código o mais simples possível.
Aqui eu armazeno a string na posição topo.
void getMensagem(void){
if (topo == maxL){
printf("Pilha cheia.\n");
}
else {
printf("Digite sua mensagem:\n");
scanf("%[^\n]s",mensagem[topo]); // Lê String até encontrar o ENTER.
setbuf(stdin, NULL);
}
empilhar();
}
E depois armazeno no arquivo .txt em ordem:
char empilhar(){
FILE *arquivo;
arquivo = fopen(LOG, "r+");
int aux;
for(aux = topo - 1; aux != -1; aux--) {
printf("Na posicao %d temos %s\n", aux, mensagem[aux]); /// visualizar pilha
fprintf(arquivo,"%s\n",mensagem[aux]);
rewind(arquivo);
}
fclose(arquivo);
getchar();
}
Tem alguma forma para que quando eu abra o programa novamente ele continue empilhando as strings no topo?