Jump to content
Fórum Script Brasil
  • 0

Abrindo e editando arquivos TXT


Question

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 to post
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to post
Share on other 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.

Edited by Mnemonic
Link to post
Share on other 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.

Edited by ReiLeao
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      149405
    • Total Posts
      645894
×
×
  • Create New...