Ir para conteúdo
Fórum Script Brasil

Yunus

Membros
  • Total de itens

    15
  • Registro em

  • Última visita

Sobre Yunus

  • Data de Nascimento 12/11/1992

Perfil

  • Gender
    Male

Últimos Visitantes

868 visualizações

Yunus's Achievements

0

Reputação

  1. Yunus

    String recebe get

    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. dessa forma eu garanto que as modificações ocorridas na função também serão ocorridas na main?
  4. 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. ^
  5. Yunus

    if aninhado == operador &&?

    Aplicado a esse caso específico em que eu coloquei os dois são idênticos, correto?
  6. Isto: if (i != ri && j1 != rj) { if (tabuleiro[i][j1] == 1) { teste = 1; break; } } Seria o mesmo que isto? if (i != ri && j1 != rj && tabuleiro[i][j1] == 1) { teste = 1; break; }
  7. 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. este é o resultado que obtenho. A pergunta é: qual o problema?
  8. como fechar o tópico e colocar como resolvido? (iniciante no fórum aqui kkk).
  9. Estou usando Falcon C++, o que acha dessa IDE? E eu criei um projeto sim...
  10. Opa, achei o erro aqui... Estava indicando na main porém estava faltando "};" da classe no .h
  11. 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)
  12. Muito obrigado pela ajuda vangodp! Acredito que o "aluno.h" (com as implementações dos métodos) seja .cpp e não .h, estou correto? testei da sua forma e a compilação demora de forma demasiada e não roda.
  13. 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.
  14. 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!
  15. eu posso comparar um vetor de char com um char dessa forma, ou há algum erro? for (i = 0; i <= j; i++) { if (palavra == palpite) palavra_chute = palpite;
×
×
  • Criar Novo...