Ir para conteúdo
Fórum Script Brasil

gabrieldestro

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Posts postados por gabrieldestro

  1. Olá a todos,

    Preciso escrever em um arquivo binário, no entanto, estou incerto quanto a formatação.

    Preciso escrever um registro de nome jogador[], contendo um numero variável de jogadores determinado pela variável nJogadoresBin.

    Esse registro contém uma string, com o nome do jogador e seis inteiros correspondentes a 6 notas.

    Preciso que o arquivo de saída tenha o formato do seguinte exemplo:

    3

    NomeA 0 0 0 0 0 0
    NomeB 1 1 1 1 1 1
    NomeC 2 2 2 2 2 2

    Sendo 3, o valor de nJogadoresBin. Os Nomes, as strings. E os numeros, as notas de cada jogador.

    A minha dúvida é em relação a formatação, como é um arquivo binário, não consigo checar pessoalmente o conteúdo, testei de duas formas, mas nenhuma funciona, como posso alterá-las?

    fwrite(&nJogadoresBin, sizeof(int), 1, arqout);
    fwrite(&jogador[0], sizeof(Jogador), nJogadoresBin, arqout);
    
    fwrite(&nJogadoresBin, sizeof(int), 1, arqout);
    fwrite("\n", sizeof(char), 1, arqout);
    for (i = 0; i < nJogadoresBin; i++) { 
        fwrite(&jogador[i], sizeof(Jogador), 1, arqout);
        fwrite("\n", sizeof(char), 1, arqout);
    }
    

    Devo considerar a quebra de linhas como na segunda alternativa, ou não? Ou ainda, esta parte está correta e o erro está em outra? Existe alguma forma de visualizar o conteúdo do arquivo de forma fácil?

    Obrigado.

  2. Obrigado a ajuda de todos, mas na verdade o problema nem era no buffer, era uma coisa mais estúpida que isso.

    for ( i = 0; i < nExecucoes; i++ ) {
    scanf ( "%d", &programaNumero[i] );
    }
    

    essa parte deveria ler uma linha de caracteres como:

    2121235326262

    Obviamente eu não poderia ler isso como inteiro, como eu estava tentando fazer. Hahahaha

    Obrigado a ajuda de todos!

  3. Olá a todos,

    Estou tendo problema na leitura dos valores do meu código. Primeiro eu leio 5 inteiros, depois uma matriz de caracteres, um vetor de inteiros e por fim mais uma matriz de caracteres. Aparentemente o programa não está lendo o vetor de inteiros, mas provavelmente um \n ou alguma coisa assim no buffer de entrada.

    A minha suposição está correta? Como posso limpar o buffer de forma que ele leia o vetor? Já tentei de varias maneiras, mas nada deu certo.

    #include <stdio.h>
    
    int main() {
            
        int nPosicoes, maxCaixas;
        int nProgramas, maxComandos;
        int nExecucoes;
        int programaNumero [60];
        char programa [9] [61];
        char posicao [10] [11]; 
        int i;
        scanf("%d", &nPosicoes);
        scanf("%d", &maxCaixas);
        scanf("%d", &nProgramas);
        scanf("%d", &maxComandos);
        scanf("%d", &nExecucoes);
        
      
        for (i = 0; i < maxCaixas; i++) {
            scanf("%s", posicao[i]);
        }
        
        for (i = 0; i < nExecucoes; i++) {
            scanf("%d", &programaNumero[i]);
        }
        
        for (i = 0; i < nProgramas; i++) {
            scanf("%s", programa[i]);
        }
    

    Não sei se isso serve de alguma coisa, mas programo em linux.

    obrigado.

×
×
  • Criar Novo...