Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Palavra nova não é adicionada ao arquivo

A palavra adicionada pelo usuário não aparece no arquivo palavras.txt. O jogo solicita a palavra nova caso o usuário digite 'S' porém a palavra nova não é adicionada no arquivo. Conferi o código várias vezes mas não encontrei nenhuma diferença do código do professor.

void adicionaPalavra(){

    char opcao;
    printf("\nAdicionar nova palavra ao jogo?S/N\n");
    scanf(" %c", &opcao);

    if(opcao == 'S'){

        char palavraNova[20];
        printf("Qual a palavra nova?\n");
        scanf("%s", palavraNova);

        FILE * f;
        fopen("palavras.txt", "r+");
        if(f==0){
            printf("ERRO\n");
            exit(1);
        }

        int qtd;
        fscanf(f, "%d", &qtd);
        qtd++;

        fseek(f, 0, SEEK_SET);
        fprintf(f, "%d", qtd);

        fseek(f, 0, SEEK_END);
        fprintf(f, "\n%s", palavraNova);

        fclose(f);

    }
}
2 respostas
solução!

Olá, Pedro! Tudo bem?

Tente colocar fopen("palavras.txt", "r+"); atribuído a uma variável. Por exemplo:

f = fopen("palavras.txt", "r+");

veja se funciona da forma correta.

Caso não dê certo estou à disposição.

Abraços e ótimos estudos!

Obrigado Larissa, funcionou. Minha outra pergunta sobre a randomização das palavras foi solucionada também. Muito obrigado pela ajuda.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software