1
resposta

Melhoria do Aplicativo de Sorteio para Adiciona em um txt.

Alguém poderia me ajudar, pois preciso que ele adicione em um txt, quando for sortia um jogo novo preciso que adicione em um txt novo e não apague o anterior criado.

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>


bool verificaArray(int numero, int *arr, int tamanho){

    for(int i = 0; i < tamanho; i++){

    if(arr[i] == numero){

        return true;

    }
    }

    return false;
}

int main() {

    int numerosjogados; 

    int numeros_sorteados;

    int numeros[100];

    int qualjogo, sair = 0;

    int jogo;

    srand(time(0));

    srand((unsigned)time(NULL));

    while(sair == 0){

    printf( "Qual jogo deseja fazer:\n");

    printf("(1)_Mega Sena  (2)_Lotofacil (3)_Quina (4)_Lotomania (0)_sair?\n");

    scanf("%d", &jogo);

    switch(jogo) {

        case 1: qualjogo = 60;
        break;

        case 2: qualjogo = 25;
        break;

        case 3: qualjogo = 80;
        break;

        case 4: qualjogo = 100;
        break;

        default: sair = 1;
        continue;
    }

    printf("Seu jogo vai ser de quantos numero?\n");

    scanf("%d", &numerosjogados);

    printf("\n");

    printf("Os numeros sao:\n");




    for(int i = 0; i < numerosjogados; i++) {

        numeros_sorteados = rand() %qualjogo;


        if(!verificaArray(numeros_sorteados, numeros, i) && numeros_sorteados != 0){

            numeros[i] = numeros_sorteados;

            printf("%d\n", numeros_sorteados);

        }

            else{

                i--;

            }

    }        

}
    }



1 resposta

Boa tarde amigo! Vamos ao seu problema.

Primeiro, para salvar conteúdo em um arquivo TXT:

FILE *f = fopen("file.txt", "w");

if (f == NULL)
{
    printf("Erro ao abrir o arquivo!\n");
    exit(1);
}

/* Escrever texto */
const char *texto = "Escrever este texto no arquivo";
fprintf(f, "Meu texto: %s\n", texto);

/* Escrever números (ints e floats) */
int i = 1;
float pi = 3.1415927;
fprintf(f, "Integer: %d, float: %f\n", i, pi);

/* Escrever chars */
char c = 'A';
fprintf(f, "Um char: %c\n", c);

/* Fechar o arquivo */
fclose(f);

Em segundo lugar, se você quiser que toda vez ele crie um arquivo novo, primeiro terá que verificar se o arquivo já existe:

int arquivo_existe (char *filename)
{
  struct stat   buffer;   
  return (stat (filename, &buffer) == 0);
}

if (arquivo_existe ("meuArquivo.txt"))
{
  printf ("O arquivo existe\n");
}

Se o arquivo já existir, você deverá criar outro nome para o arquivo. Por exemplo, poderia colocar um número no final do arquivo, como "arquivo1.txt", "arquivo2.txt", e assim por diante.

Bons estudos!