Ir ao conteúdo
  • Cadastre-se

InicianteOtaku

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

posts postados por InicianteOtaku

  1. @arfneto Código

        void sendFile(int socket,ifstream& in,void(*function)(pair<ulli*,ulli*>)=NULL){
            in.seekg(0,ios::end);
            uint64_t file_size = in.tellg();
            in.seekg(0,ios::beg);
            
            sendVar<uint64_t>(socket,file_size);
    
            char *Buffer = new char[file_size];
            in.read(Buffer,file_size);
          
            cout<<file_size<<" "<<(in.gcount() == file_size)<<" "<<((in.rdstate() & ios::eofbit)!=0) << endl;
            cout<<Buffer<<endl; // estou usando um arquivo de texto para testar
          
            for(uint64_t i=0;i<=file_size;){
                if((i+500)<file_size){
                    send(socket,Buffer+i,500,0);
                    i+=500;
                }else{
                    send(socket,Buffer+i,(file_size-i),0);
                    i+=(file_size-i);
                }
            }
          
            delete[] Buffer;
        }

    Ao realizar a troca de ulli = Unsigned long long int para uint64_t parece que tudo está funcionando normalmente. obrigado!.

    • Curtir 2
  2. Ao tentar carregar um arquivo na memória usando ifstream em modo binário , a leitura do arquivo chega ao final mas meu buffer não contem todos os dados.

    void sendFile(int socket,ifstream& in){
      in.seekg(0,ios::end); //posicionando no final para pegar o tamanho em bytes
      ulli sizeFile = in.tellg();//pegando a posição atual
      in.seekg(0,ios::beg); //reposicionando no inicio para leitura
      char *Buffer = new char[sizeFile];//criando buffer de tamanho do arquivo (bytes)
      in.read(Buffer,sizeFile);
      char Bufftosend[500];
    }

     

    • Curtir 1
  3. @Flávio Pedroza  <--seguindo a ideia do parça ali de cima o código ficará assim verifica onde você errou

    #include <stdlib.h>
    #include <iostream>
    #include <stdio.h>
    #include <time.h>
    #include <random>
    
    
    using namespace std;
    #define TamA 1000000
    #define TamM 2000001
    
    
    
    bool Existe(long int Valores[], int tam, long int valor) {//chama a função existe e passa o vetor de valores o vetor que tem todos os valores
    												//tam tamnho do vetor / verifica se o valor ta no vetor - pecore todo o vetor
    	for (int i = 0; i < tam; i++) {
    		if (Valores[i] == valor)
    			return true;
    	}
    	return false;
    }
    
    void GeraAleatorios(long int numeros[], int quantNumeros, int Limite) {
    	srand((unsigned int)time(NULL));
    	long int v, i;
    	for (i = 0; i < quantNumeros; i++) {
    		v = (int)rand();
    
    		while (Existe(numeros, i, v)) {
    			v = (int)rand();
    		}
    		numeros[i] = v;
    		printf("%d ", numeros[i]);
    	}
    
    }
    int main()
    {
    	//FILE* geRar;
    	//geRar = fopen("D:\\Down\\100000Numeros.txt", "w");
    
    	//int numeros[TamA];
    	long int* numeros;
    
    	numeros = (long int*)malloc(TamM * sizeof(long int));
    
    	GeraAleatorios(numeros, TamA, TamM);
    	for (int i = 0; i < TamA; i++) {
    		//fprintf(geRar, "%d ", numeros[i]);
    		printf("%d ", numeros[i]);
    
    	}
    
    	return 0;
    
    }

     

    • Curtir 1
  4. Você usa Windows ou linux?

    Pois podemos utilizar threads para manter uma execução de um bloco independentemente.

     

    Exemplo windows:

    #include <stdio.h>
    #include <process.h> //para Utilizar a funçao de criar threads
    void func(void *arg){
        int *v=(int*)arg;
        while (1){
            *v=1;
    		printf ("v está recebendo o valor 1 infinitamente");
    	}
    }
    int main(){
        int x;
        _beginthread(func,0,&x);// 1- Endereço da funçao,0,argumento da func(com ponteiro)  
        system("pause");/*pausei a thread principal para que o programa não termine, No caso ficou so a secundaria(a que foi criada com a função _beginthread) rodando.*/
        return 0;
    }
    #include <stdio.h>
    #include <process.h> //para Utilizar a funçao de criar threads
    void func(void *arg){
        int *v=(int*)arg;
        while (1){
            *v=1;
    	}
    }
    int main(){
        int v;
        _beginthread(func,0,&v);// 1- Endereço da funçao,0,argumento da func(com ponteiro)  
      printf ("v está recebendo o valor 1 infinitamente");  
      system("pause");/*pausei a thread principal para que o programa não termine, No caso ficou so a secundaria(a que foi criada com a função _beginthread) rodando.*/
        return 0;
    }

    Caso for Linux utilize a biblioteca pthread.

    • Obrigado 1
  5. Achei o problema  da compilação , era na declaracão de escopos as funcoes estavam incorretas faltava os parametros.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define vagas 40
    
    typedef struct CadastroAluno{
            int idnome;
            char nome[30];
            int qtdnomes;
        }CadastroAluno;
    
     typedef struct CadastroDisciplina{
        int iddisciplina;
        char disciplina[30];
        int qtdalunos;
        int alunoscadastradosemdisciplina[vagas];
    
     }CadastroDisciplina;
    
    CadastroAluno cadastroaluno(CadastroAluno Aluno[]); //alterado
    CadastroDisciplina cadastrodisciplina(CadastroDisciplina Disciplina[]); //alterado
    void Menu(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]); //alterado
    void ListarAluno(CadastroAluno Aluno[]); //alterado
    void cadastroalunoemdisciplina(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]); //alterado
    void ListarDisciplina(CadastroDisciplina Disciplina[]); //alterado
    int excluiralunodedisciplina(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]); //alterado
    void listaridalunosmatriculadosemdisciplina(); //Falta fazer ainda
    
    
    int main (){
    
    
        CadastroAluno Aluno[100];
        CadastroDisciplina Disciplina[100];
    
        Aluno[0].qtdnomes = 0;
        Disciplina[0].qtdalunos = 0;
        Disciplina[1].qtdalunos = 0;
    
    
        Menu(Aluno, Disciplina);
        int Ret = excluiralunodedisciplina(Aluno, Disciplina);
    
        if (Ret == 1) printf("\nAluno Excluido com Sucesso!\n"); //Resolver
        if (Ret == 2) printf("\nAluno nao encontrado!\n"); //Resolver
        if (Ret == 3) printf("\nDisciplina nao encontrada!\n"); //Resolver
    
    
    
     system ("Pause");
     return 0;
    }
    
    void Menu(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]){
        int opc;
    
    
        do{
    
        printf("\nInforme [1] para cadastrar!");
        printf("\nInforme [2] para Listar Alunos!");
        printf("\nInforme [3] para Cadastrar Disciplina!");
        printf("\nInforme [4] para Listar Disciplinas!");
        printf("\nInforme [5] para Cadastrar Aluno em Disciplina!");
        printf("\nInforme [6] para Excluir Aluno de Disciplina!");
        printf("\nInforme [0] para Sair!");
        printf("\nInforme a opcao: ");
        scanf("%d", &opc);
    
     if(opc == 1) cadastroaluno(Aluno);
    
     if (opc == 2) ListarAluno(Aluno);
    
     if (opc == 3) cadastrodisciplina(Disciplina);
    
     if (opc == 4) ListarDisciplina(Disciplina);
    
     if (opc == 5) cadastroalunoemdisciplina(Aluno, Disciplina);
    
     if (opc == 6) excluiralunodedisciplina(Aluno, Disciplina);
    
    
    
    }while(opc != 0);
    }
    
    CadastroAluno cadastroaluno(CadastroAluno Aluno[]){
        printf("\nInforme Nome %d: ", Aluno[0].qtdnomes+1);
        fflush(stdin);
        gets(Aluno[Aluno[0].qtdnomes].nome);
        printf("\nInforme ID_aluno: ");
        scanf("%i", &Aluno[Aluno[0].qtdnomes].idnome);
        fflush(stdin);
        Aluno[0].qtdnomes++;
        printf("\nQuantidade de nomes: %i\n", Aluno[0].qtdnomes);
     }
    
    
    void ListarAluno(CadastroAluno Aluno[]){
        if(Aluno[0].qtdnomes > 0){
        int cont = 0;
        while(cont < Aluno[0].qtdnomes){
            printf("\nNome %d: %s\n", cont+1, Aluno[cont].nome);
            printf("\nID_aluno : %d\n", Aluno[cont].idnome);
            printf("__________\n");
            cont++;
        }
        }
        else {
            printf("\nNenhum Aluno Cadastrado!\n");
        }
    }
    
    
    CadastroDisciplina cadastrodisciplina(CadastroDisciplina Disciplina[]){
        printf("\nInforme Nome da disciplina %d: ", Disciplina[0].qtdalunos+1);
        fflush(stdin);
        gets(Disciplina[Disciplina[0].qtdalunos].disciplina);
        printf("\nInforme ID_Disciplina: ");
        scanf("%i", &Disciplina[Disciplina[0].qtdalunos].iddisciplina);
        fflush(stdin);
        printf("\nID_Disciplina : %i esta na posicao %i\n", Disciplina[Disciplina[0].qtdalunos].iddisciplina, Disciplina[0].qtdalunos);
        Disciplina[0].qtdalunos++;
        printf("\nQuantidade de Disciplina: %i\n", Disciplina[0].qtdalunos);
    }
    
    void ListarDisciplina(CadastroDisciplina Disciplina[]){
        if(Disciplina[0].qtdalunos > 0){
        int cont = 0;
        while(cont < Disciplina[0].qtdalunos){
            printf("\nNome da Disciplina %d: %s\n", cont+1, Disciplina[cont].disciplina);
            printf("\nID_Disciplina : %d\n", Disciplina[cont].iddisciplina);
            printf("__________\n");
            cont++;
        }
        }
        else {
            printf("\nNenhuma disciplina cadastrada!\n");
        }
    }
    
    void cadastroalunoemdisciplina(CadastroAluno Aluno[], CadastroDisciplina Disciplina[]){
        int iddisciplina;
        int idaluno;
        int cont;
        int EncontradoA = 0;
        int EncontradoD = 0;
    
        printf("\nInforme o ID_Disciplina da Disciplina que vai cadastrar o Aluno: ");
        scanf("%i", &iddisciplina);
    
         for(cont = 0; cont <= 100; cont++){
            if(iddisciplina == Disciplina[cont].iddisciplina){
            EncontradoD = 1;
            }
         }
    
        printf("\nInforme o ID_Aluno do Aluno que vai ser cadastrado na Disciplina informada: ");
        scanf("%i", &idaluno);
    
        for(cont = 0; cont <= 100; cont++){
            if(idaluno == Aluno[cont].idnome){
                    Disciplina[cont].alunoscadastradosemdisciplina[cont] = idaluno;
                    EncontradoA = 1;
                    Disciplina[1].qtdalunos++;
                    printf("\nAluno %i cadastrado na posicao %i\n", Disciplina[cont].alunoscadastradosemdisciplina[cont], cont);
            }
        }
    
         if(EncontradoA == 1 && EncontradoD == 1){
            printf("\nAluno Cadastrado com Sucesso!\n");
            printf("\nQuantidade de Alunos nessa disciplina: %i\n", Disciplina[1].qtdalunos);
         }
            else if (EncontradoA != 1){
                    printf("\nAluno nao encontrado!\n");
            }
            else if(EncontradoD != 1){
                    printf("\nDisciplina nao encontrada!\n");
            }
    
        printf("id_disciplina: %i\n", iddisciplina);
        printf("id_aluno: %i\n", idaluno);
    }
    
    void listaridalunosmatriculadosemdisciplina(CadastroDisciplina Disciplina[]){
        //Falta fazer
    }
    
    int excluiralunodedisciplina (CadastroAluno Aluno[], CadastroDisciplina Disciplina[]){
        int idaluno;
        int iddisciplina;
        int cont;
        int EncontradoA = 0;
        int EncontradoD = 0;
    
    
        printf("\nInforme o ID_Disciplina da Disciplina que vai ser excluido o Aluno: ");
        scanf("%i", &iddisciplina);
    
        for(cont = 0; cont <= 100; cont++){
            if(iddisciplina == Disciplina[cont].iddisciplina){
                EncontradoD = 1;
            }
         }
    
         printf("\nInforme o ID_Aluno do Aluno a ser excluido da disciplina: ");
         scanf("%i", &idaluno);
    
         for(cont = 0; cont <= 100; cont++){
            if(idaluno == Aluno[cont].idnome){
                EncontradoA = 1;
            }
         }
    
         for(cont = 0; cont < Disciplina[1].qtdalunos; cont++){
            if(idaluno == Disciplina[cont].alunoscadastradosemdisciplina[cont]){
                printf("\n%i\n", Disciplina[cont].alunoscadastradosemdisciplina[cont]); //Aluno Cadastrado
                Disciplina[cont].alunoscadastradosemdisciplina[cont] = '\0';
                Disciplina[1].qtdalunos--;
                printf("\n%i\n", Disciplina[cont].alunoscadastradosemdisciplina[cont]); //Aluno Após ser excluído
            }
         }
    
         if(EncontradoA == 1 && EncontradoD == 1){
            //printf("\nAluno Excluido com Sucesso!\n");
            printf("\nQuantidade de Alunos nessa disciplina: %i\n", Disciplina[1].qtdalunos);
            return 1;
         }
            else if (EncontradoA != 1){
                    //printf("\nAluno nao encontrado!\n");
                    return 2;
            }
            else if(EncontradoD != 1){
                    //printf("\nDisciplina nao encontrada!\n");
                    return 3;
            }
    }

     

  6. agora, caiobcc disse:

    Funcionou +ou-

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <locale.h>
    #include <time.h>
    
    int main(void)
    {
    	setlocale(LC_ALL, "Portuguese");
     int i;
     srand(time (NULL));
    printf("%d\n", rand() % 5);
    	
    if((rand() % 5) == 0)
    printf("Você conseguiu uma Knife\n");
    if((rand() % 5) == 1)
    printf("Você conseguiu uma AWP WORM GOD\n");
    if((rand() % 5) == 2)
    printf("Você conseguiu uma TECH 9 BLUE\n");
    if((rand() % 5) == 3)
    printf("Você conseguiu uma AK47 RED\n");
    if((rand() % 5) == 4)
    printf("Você conseguiu uma DESEART EAGLE GREEN\n");
    
    }

    Tem vezes que ele me imprime 2 frases, e tem vezes que nem imprime frases.

    image.png.88072bca2280f6d12971e5a0e3e9b086.png

    image.png.c1d40c0f48e49c65d5834bcb261f8bea.png

    O problema aqui é que você está sempre pegando um numero aleatório diferente em seus if,para resolver é só você fazer

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <locale.h>
    #include <time.h>
    
    int main(void)
    {
      setlocale(LC_ALL, "Portuguese");
      int i,num;//Criei uma variavel nova para guardar o numero sorteado.
      srand(time (NULL));-> Isso é a semente de geração randomica.
      num=(rand() % 5);
      printf("%d\n", num);
      /* Troquei todos os (rand() % 5) que estavam nos if */
      if(num == 0)
      	printf("Você conseguiu uma Knife\n");
      if(num == 1)
      	printf("Você conseguiu uma AWP WORM GOD\n");
      if(num == 2)
      	printf("Você conseguiu uma TECH 9 BLUE\n");
      if(num == 3)
      	printf("Você conseguiu uma AK47 RED\n");
      if(num == 4)
      	printf("Você conseguiu uma DESEART EAGLE GREEN\n");
    
    }

     

     

    • Obrigado 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!