Ir para conteúdo
Fórum Script Brasil
  • 0

Abrindo e editando arquivos TXT


ReiLeao

Pergunta

Boa noite pessoal.

Preciso de ajuda.

O que tenho que fazer é o seguinte.

No meu programa que é um joguinho, quando cada usuário vence, ele escreve seu nome e esse nome é armazenado dentro de um txt.

A próxima vez que esse programa rodar, ele tem que abrir novamente o txt e armazenar o nome do vencedor, porem, se o vencedor, for um usuário que já venceu antes, ele tem que aumentar sua pontuação.

Por exemplo:

Marcos: 5

Joao: 2

Maria: 9

Se Marcos ganha, ficaria assim:

Marcos: 6

Joao: 2

Maria: 9

Se quando ganhar o usuario colocar o nome Roberto, ficaria assim

Marcos: 6

Joao: 2

Maria: 9

Roberto: 1

Seria mais ou menos isso, não estou conseguindo trabalhar com os resultados somados, como posso fazer isso??

Tenho que identificar quem é o usuário no txt, para não acontecer por exemplo: Maria receber um ponto do Joao.

Agradeço as ajudas

Valeu pessoal. ;)

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Obrigado pelas respostas, mas não sei como fazer isso.

Tava buscando na internet para fazer a pesquiisa pelo nome, mas não achei nada que ajudasse.

E não entendi como fazer o que o Mnemonic falou o.O.

Eu carrego o txt antigo, o programa faz tudo, e no final somente ele altera??

Mas mesmo assim, como ele vai mudar somente o que quero??

não estou conseguindo entender essa parte.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

typedef struct tJogador {
   char nome[50];
   int pontos;
} Jogador;

Jogador jog[10];

- fopen, abriu arquivo "jogadores.txt" para leitura apenas.

- lê uma linha do arquivo, guarda nome e pontuação em jog[0].nome e jog[0].pontos

- lê outra linha do arquivo, guarda nome e pontuação em jog[1].nome e jog[1].pontos

- lê mais outra... guarda em jog[2]...

- etc...

- fecha arquivo

O arquivo tá fechado, mas todos os dados que você precisa estão guardados no vetor "jog[]".

Então você chama as funções do seu jogo, faz o que tiver que fazer, quando o jogador vencer você procura o nome dele em jog[].

Se estiver lá, você só muda a pontuação... se ele não estiver lá, é só pegar uma posição vazia do vetor e incluir ele.

Terminou de executar o jogo, então:

- fopen, abre o arquivo "jogadores.txt" pra escrita.

- pega os dados de jog[0] e escreve no arquivo

- pega os dados de jog[1] e escreve no arquivo

- pega os dados de jog[2] e escreve no arquivo

- etc...

- fecha arquivo

Como você abriu o arquivo pra escrita ("w"), o conteúdo que tava antes nele vai ser perdido, e você terá um arquivo novinho em folha com os dados dos jogadores atualizados.

Editado por Mnemonic
Link para o comentário
Compartilhar em outros sites

  • 0

Entendi a logica, porem... como vou fazer dentro do txt, o struct mandar para um vetor??

Como ele vai selecionar somente o nome do usuario e os pontos??

To confuso.. oO

Valeu

EDIT:

O que fiz ate agora foi basicamente:

typedef struct Jogador
{
   char nome[10];
   int pontos;
} Jogador;

Jogador jog[5];


   ifstream nome("nomes.txt");
    for (int x=0;x<5;x++)
    {
    nome >> jog[x].nome;
    }
    nome.close();

    ifstream pontos("pontos.txt");
    for (int x=0;x<5;x++)
    {
    pontos >> jog[x].pontos;
    pontos.close();
    }


    cout<<"O VENCEDOR E "<<str[vencedor];

    for (int x=0;x<5;x++)
    {
    if (str[vencedor]==jog[x].nome)
    {

        jog[x].pontos=jog[x].pontos+1;
    }
    }



    ofstream pontos("pontos.txt");
    for (int w=0;w<5;w++)
    {
    pontos << jog[w].pontos;
    }
    pontos.close();

Só que esta dando erros, não ta funcionando.. =/

O que posso fazer pra arrumar??

Valeu.

Editado por ReiLeao
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...