Ir ao conteúdo

ajuda com arquivos em c


tchoo

Posts recomendados

Postado

aí galera, eu estou com um probleminha em c sobre arquivos.

eu quero escrever palavras em um arquivo (exemplo.txt), eu consigo, porém, sempre que eu vou escrever outra palavra, ele escreve sobre a que estava no arquivo e, o que eu quero realmente é escrever uma debaixo da outra sem perder nenhuma que já foi escrita. E toda vez que eu compilar o programa poder escrever mais palavras uma debaixo da outra também sem perder nenhum conteúdo...:huh:

abaixo está a minha função... valeu galera.

obs.: eu uso o devc++.

int Adicionar (void)

{

// Declaração de Variáveis

int i = 0, j = 0; // Pontos de Coordenadas.

int x = 0, y = 0; // X guardará a opção (0 - Sair e 1 - Não Sair), Y guarda o valor da tecla precionada conforme ASCII.

int Cor[4] = {15, 1, 0, 3}; // Guardará o código das cores para textcolor e textbackground respectivamente.

char palavra[100] = "";

FILE *adiciona; // cria o arquivo.

if ((adiciona = fopen ("animais.txt", "w")) == NULL) // abre o arquivo para leitura.

{

Forca ();

gotoxy (25,15); textcolor (12); textbackground (3);

printf ("N%co foi poss%cvel abrir o arquivo!\n", -58, -95);

fflush(stdin);

getch ();

}

else

{

system ("cls");

Retangulo ();

textcolor (15); textbackground (1); gotoxy (6,4);

printf (" JOGO DA FORCA ");

gotoxy (8,10); textcolor (14); textbackground (3);

printf ("Insira o palavra: ");

gets (palavra);

fputs (palavra,adiciona);

gotoxy (25,17); textcolor (10); textbackground (3);

printf ("Palavra adicionada com sucesso!\n");

getch ();

system ("cls");

Retangulo ();

textcolor (15); textbackground (1); gotoxy (6,4);

printf (" JOGO DA FORCA ");

gotoxy (20,10); textcolor (14); textbackground (3);

printf (" DESEJA INCLUIR MAIS ALGUMA PALAVRA ? ");

// Opcao Móvel.

do

{

gotoxy (33,13); textcolor (Cor[0]); textbackground (Cor[1]);

printf (" SIM ");

gotoxy (43,13); textcolor (Cor[2]); textbackground (Cor[3]);

printf (" N%cO ", -57);

y = getch ();

if ((y == 80) || (y == 77) || (y == 72) || (y == 75))

{

if (x == 0)

{

x = 1;

Cor[0] = 0; Cor[1] = 3; Cor[2] = 15; Cor[3] = 1;

}

else if (x == 1)

{

x = 0;

Cor[0] = 15; Cor[1] = 1; Cor[2] = 0; Cor[3] = 3;

}

}

} while (y != 13);

return (x);

}

fclose (adiciona);

}

Postado

crudo... iso não funcionol, mas troquei o fputs (palavra,adiciona); por fprintf (adiciona, %s\n", palavra); e deu certinho...

a dúvida agora é como mostro o conteúdo do arquivo na tela... se puder me ajudar...

obrigado...

:D

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!