Ir para conteúdo
Fórum Script Brasil

Yunus

Membros
  • Total de itens

    15
  • Registro em

  • Última visita

Posts postados por Yunus

  1. Tenho uma variável static "fieldOrder" que seleciona a ordem dos campos no registro, exemplo: name, cpf, phone, course, age, active ou poderia ser cpf, age, name, course, phone, active, o usuário do sistema vai decidir isso. 

    Gostaria de armazená-lo em um buffer, com um caractere especial separando cada campo, para então guardar em um arquivo(mas guardar no arquivo não vem ao caso agora).

    O problema aqui é que entra nos cases corretamente (testei isso), porém o buffer não está recebendo gets. Não sei o porque acontece isso ou como fazer isso funcionar.

    Alguma ideia? Fiz algo errado?

     

    Aqui vai o método:

    public String registroOrdemCampo(Student std)
        {
            String buffer = null;
                    
            for (int i = 0; i < 6; i++) 
            {
                /*name = 1 -- cpf = 2 -- phone = 3 -- course = 4 -- age = 5 -- active = 6*/
                switch (Descriptor.fieldOrder[i])
                {
                    case 1:
                        buffer = std.getName();
                        break;
                    case 2:
                        buffer = std.getCpf();
                        break;
                    case 3:
                        buffer = std.getPhone();
                        break;
                    case 4:
                        buffer = std.getCourse();
                        break;
                    case 5:
                        buffer = Integer.toString(std.getAge());
                        break;
                    case 6:
                        buffer = Integer.toString(std.getActive());
                        break;
                    default:
                        System.out.println("ERRO!");
                }
                if(i < 6) buffer = Descriptor.fieldSeparator;
            } 
            return buffer;
        }

     

  2. Como comparar uma determinada posição de uma matriz através de colchetes sendo que passei como ponteiro de ponteiro (int **matriz)

    Main:

    while (qtdRainhas < n)
                {
                    printf("\nInsira a linha: ");
                    scanf("%i", &ri);
    	            printf("\nInsira a coluna: ");
    	            scanf("%i", &rj);
    	            verifica = verificaConflitos(ri-1, rj-1, tabuleiro, n);
                    printf("verificou");
    	            if (verifica == 0)
    	            {
    	                printf("\nentrou if\n");
    	                tabuleiro[ri][rj] = 1;
    	                printf("Inseriu rainha %i" , i);
    	                qtdRainhas++;
    	            }
                    else
                        printf("\nPosicao invalida, insira novamente!");
                }
                printf("\n");
    	        Imprimir(tabuleiro, n);

    .h

    /**Imprime todas as posições do tabuleiro*/
    void Imprimir(int **tabuleiro, int n);
    /**VERIFICA SE É POSSÍVEL POSICIONAR A RAINHA EM matriz(ri, rj).
    RETORNA 1 SE NÃO É POSSÍVEL E 0 SE FOR POSSÍVEL*/
    int verificaConflitos (int ri, int rj, int **tabuleiro , int n);

    funcoes.c

    int verificaConflitos (int ri, int rj, int **tabuleiro, int n)
    {
        int i, i1, i2, j, j1, j2;
        int teste = 0;
    
        i1 = ri;
        i2 = ri;
        j1 = rj;
        j2 = rj;
        printf("\nentrou verificaConflito");
        /**TESTA SE EXISTE ALGUMA NA MESMA LINHA OU COLUNA*/
        for (i = 0; i < n; i++)
        {
            printf("\nentrou for");
            if (tabuleiro[ri][i] == 1 || tabuleiro[i][rj] == 1)//o erro acontece aqui!
            {
                teste = 1;
                printf("\nentrou if");
                break;
            }
            printf("\nsaiu for");
        }

    O programa não está completo, mas tem o suficiente... Coloquei alguns printf's para ver até onde o programa vai. Penso que seja algo errado em relação ao "tabuleiro [ri] " por tê-lo passado como "** tabuleiro". Alguém sabe me dizer o problema e como consertá-lo?

  3. Preciso criar uma matriz N*N através de função, tenho três arquivos "main.c" "cabecalho.h" e "funcoes.c", como passar a matriz como parametro para a função? A seguir o código

    main.c:

    #include<stdio.h>
    #include "cabecalho.h"
    
    void main ()
    {
    	int **tabuleiro;
      	int n;
      
      	printf("Insira o tamanho do tabuleiro e a quantidade de rainhas (N): ");
        scanf("%i", &n);  	
        construirMatriz(tabuleiro, n);
    }

    cabecalho.h:

    #ifndef CABECALHO_H_INCLUDED
    #define CABECALHO_H_INCLUDED
    #include "funcoes.c"
    
    /**ALOCA A MATRIZ DINAMICAMENTE DE TAMANHO N*N*/
    void construirMatriz(int tabuleiro[][], int n);
    
    #endif // CABECALHO_H_INCLUDED

    funcoes.c:

    #include<stdio.h>
    #include "cabecalho.h"
    
    void construirMatriz(int tabuleiro[][], int n)
    {
    	tabuleiro = (int **) malloc (n * sizeof(int*));
        for (i = 0; i < n, i++)
        	tabuleiro[i] = (int *) malloc (n * sizeof(int));
    }

    esse é o erro:

    funcoes.c:4:26: error: array type has incomplete element type
     void construirMatriz(int tabuleiro[][], int n)

    Acredito ser na forma como estou passando a matriz para as funções.
                              ^
     

  4. void EstagioAluno::readEA(ifstream &arq)
    {
    	short lenght;
    	char *buffer = new char [200];;
    	do{
    		arq.read((char*)&lenght, sizeof(lenght));
    		buffer[lenght] = '\0';
    		arq.read(buffer, lenght);
    		cout << buffer <<endl;
    	}while(arq.good());
    }

    este método é responsável por ler registros em um arquivo e então imprimi-los, porém tem alguns erros...

    case 2:
    		arq2.open("estagios.txt", ios::binary);
    		if (!arq2.good())
    		{
    			cerr<< "não foi possivel abrir o arquivo."<<endl;
    			exit(2);
    		}
    		ea.readEA(arq2);
    		arq2.close();
    		break;

    Dessa forma eu o uso na main.

    bug.PNG

    este é o resultado que obtenho.

    A pergunta é: qual o problema?

  5. main.cpp:9: error: expected nested-name-specifier before 'namespace'
    main.cpp:9: error: expected unqualified-id before 'namespace'
    main.cpp:9: error: expected ';' before 'namespace'
    main.cpp:9: error: expected unqualified-id before 'namespace'
    main.cpp:60: error: expected '}' at end of input
    main.cpp:60: error: expected unqualified-id at end of input

    depois da correção esses foram os erros, alguma ideia sobre? (me desculpe caso esteja abusando da sua ajuda haha)

  6. Boa tarde,

    Preciso separar a classe do main utilizando um .h mas não sei como faze-lo.

    class EstagioAluno
    {
        private:
        int matricula;
        char nomeCompleto [50];
        char tipoEstagio[13];
        char nomeEmpresa[20];
        char cnpj[20];
        char nomeSupervisor[50];
        char dataInicio[11];
        char dataFim[11];
        char dataEntregaRelatorioParcial[11];
        char situacao[11];
        int horasPrevistas;
        int horasTotalizadas;
        char parecerFinal[401];
    
    }


     

    e esses métodos:
    
    void PreencherEA();
    
    void ImprimirEA();
    
    void writeEA (ofstream &arq);
    
    void readEA(ifstream &arq);

     

    Como separá-los em um .h um .cpp e um main?

    obs: caso for preciso mais informações eu coloco aqui.

  7. Boa noite Srs,

    eu criei um buffer para escrever um registro em um arquivo e preciso de passar um inteiro para uma string (vetor de char), como faria isso?

    segue o código:

    void writeEA (ostream &stream, EstagioAluno &ea)
            {
                char buffer [1000];
                short length;
                strcpy (buffer, ea.matricula);
                strcat(buffer, '|');
                strcat(buffer, ea.nomeCompleto);
                strcat(buffer, '|');
                strcat(buffer, ea.tipoEstagio);
                 strcat(buffer, '|');
                 strcat(buffer, ea.nomeEmpresa);
                 strcat(buffer, '|');
                 strcat(buffer, ea.cnpj);
                 strcat(buffer, '|');
                 strcat(buffer, ea.nomeSupervisor);
                 strcat(buffer, '|');
                 strcat(buffer, ea.dataInicio);
                 strcat(buffer, '|');
                 strcat(buffer, ea.dataFim);
                 strcat(buffer, '|');
                 strcat(buffer, ea.dataEntregaRelatorioParcial);
                 strcat(buffer, ea.situacao);
                 strcat(buffer, '|');
                 strcat(buffer, ea.horasPrevistas);
                 strcat(buffer, '|');
                 strcat(buffer, ea.horasTotalizadas);
                 strcat(buffer, '|');
                 strcat(buffer, ea.parecerFinal);
                 strcat(buffer, '|');
                 length = (short) strlen(buffer);
                 stream.write(&length, sizeof(length));
                 stream.write(buffer, length);
            }[\code]

    Os campos matricula, horasPrevistas e horasTotalizadas são int, consequentemente o strcpy não funciona, o que colocaria no lugar?

    desde já agradeço!

×
×
  • Criar Novo...