Ir ao conteúdo
  • Cadastre-se

Jesus Porfirio

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

posts postados por Jesus Porfirio

  1. Olá galera tudo bem?

    Sou novo em programação, mas tenho um grande anseio em me evoluir e um dia tornar-me um grande desenvolvedor de aplicações, e hoje gostaria de pedir um conselho, um caminho...

    Eu estou querendo criar um codigo que receba um audio de, por exemplo, um microfone e esse audio saia no alto falante do meu pc, alguem sabe o que eu teria que começar pesquisando?

    Desde já agradeço.

    • Obrigado 1
  2. Hoje eu parei para ler, os comentários do programa atual, disposto aqui no Clube do Hardware.

    E simplesmente me deixei levar, por essa onda de agradecimentos, de coração, muito obrigado, as dicas e conselhos que recebo desta comunidade, neste tópico me fortalecem na programação em C, de coração obrigado.

    No caso do programa acima  @Midori o uso do prototipo entrada tinha como ideia justamente adicionar um alemento vazio para o vetor de caracteres, para que quando o programa passase para a area de uso no execv o próprio recebesse somente os comando rs

    E@arfneto a minha duvida em si era referente a como eu iria fazer a entrada dos comando no execv, foi bem simples no fim das contas, utilizei ponteiro de ponteiros e salvou noites de sono, kk, estarei compartilhando aqui uma solução que eu tive como luz a questão do execv.

    Novamente muitíssimo obrigado.

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    
    void escanfe(char * srt){
        fgets(srt, sizeof(srt), stdin);
        if (srt[strlen(srt) - 1] == '\n') {srt[strlen(srt) - 1] = '\0';}
    }
    
    int main()
    {
        char comando[20];
        char argumento[20][20];
        int i = 1;
        char **arg = malloc(10 * sizeof(char *));
    
        printf("Entre com o comando: ");
        escanfe(comando);
        
        arg[0] = comando;
        printf("Entre com o argumento %i: ", i);
        escanfe(argumento[i]);
        while (strlen(argumento[i]) != 0){
            arg[i] = argumento[i];
            i ++;
            printf("Entre com o argumento %i: ", i);
            escanfe(argumento[i]);
        }
    
        arg[i] = NULL;
    
        execvp(arg[0], arg);
    }

      

  3. Olá gente tudo bem, preciso de uma ajuda...

    O professor da faculdade pediu pra eu criar um programa utilizando o execv.

    NO caso a ideia é simples é só para fazer um programa que o usuario digite comandos de linux, salve numa matriz de caracteres e utilize essa variavel no execv

    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    #include <stdlib.h>
    
    void entrada (char *p){
    	fgets(p, sizeof(p),stdin);
    	if(p[strlen(p)-1] =='\n') {p[strlen(p)-1]='\0';}
    }	
    	
    int main(){
    	char dirPadrao[20]="/bin/";
    	char arg[10][20];
    	
    	char comando[20];
    	char argumento[20];
    	
    	int i =1;
    	
    	printf("Entre com o comando: ");
    	scanf("%s", comando);
    	
    	strcat(dirPadrao, comando);
    	strcpy(arg[0], comando);
    
    	printf("\nEntre com o argumento");
    	entrada(argumento);
    		
    	while(strlen(argumento) != 0){
    		strcpy(arg[i], argumento);
    		i++;
    		
    		printf("Entre com o argumento");
    		entrada(argumento);
    	}
    
    	execv(dirPadrao, argumento);
    }

     

     

    • Curtir 1
  4. :DOlá!

    Galera novamente estou aqui e estou com um problema no código abaixo.

    Se alguém puder me ajudar com ele ficarei grato, não sei o porque de ele não funcionar.

    O código esta num arquivo em anexo.

    #include<stdio.h>
    #include<string.h>
    
    typedef struct funcionario {
        int nrmatricula;
        char nome[40];
        float salario;
    }funcCorp;
    
    void ordem_stru (int tamanho, struct funcionario *p);
    int pesquisaBinaria(struct funcionario *p, int inicio, int fim, int busca);
    
    int main (){
        int n, busca;
        funcCorp func[n];
        
        printf("Quantos funcionarios tem na empresa?");
        scanf("%i", n);
        
        for(int x=0; x<n; x++){
            printf("\nnumero da matricula: ");
            scanf("%i", &func[x].nrmatricula);
            
            printf("\nnome: ");
            scanf("%s", func[x]);
            
            printf("\nsalario: ");
            scanf("%f", &func[x].salario);
            
        }
        ordem_stru(n, func);
        
        printf("Qual numero de matricula voce busca?");
        scanf("%i", &busca);
        
        busca = pesquisaBinaria(func,0,n-1, busca);
    }
    
    void ordem_stru (int tamanho, struct funcionario *p){
        
        int x,y;
        //resolvi criar uma outra struct por preguiça de ficar alocando caracteres iguais hehe
        // aux.a e mais rápido que aux.nrmatricula
        struct Aux{
            int a;
            char b[40];
            float c;
        }aux;
        
        for(x=0;x<tamanho-1;x++){
            
            //condicional para troca dos elementos
            if((*(p + x)).nrmatricula > (*(p + x + 1)).nrmatricula){
                
                // separa dados da struct
                aux.a = (*(p + x)).nrmatricula;
                strcpy(aux.b, (*(p + x)).nome);
                aux.c = (*(p+x)).salario;
                
                //ordena o menor elemnto da struct 
                (*(p + x)).nrmatricula = (*(p + x+1)).nrmatricula;
                strcpy((*(p + x)).nome, (*(p + x+1)).nome);
                (*(p+x)).salario = (*(p+x+1)).salario;
                
                //joga de volta o dado na struct
                (*(p + x)).nrmatricula = aux.a;
                strcpy((*(p + x)).nome, aux.b);
                (*(p+x)).salario = aux.c;
                
                y=x;
                
                while(y>0){
    
                    if((*(p + y)).nrmatricula < (*(p + y - 1)).nrmatricula){
                        
                        aux.a = (*(p + y)).nrmatricula;
                        strcpy(aux.b, (*(p + y)).nome);
                        aux.c = (*(p+y)).salario;
                
                        (*(p + y)).nrmatricula = (*(p + y-1)).nrmatricula;
                        strcpy((*(p + x)).nome, (*(p + y-1)).nome);
                        (*(p+x)).salario = (*(p + y-1)).salario;
                
                        (*(p + y -1)).nrmatricula = aux.a;
                        strcpy((*(p + y-1)).nome, aux.b);
                        (*(p + y-1)).salario = aux.c;
                
                        y--;
                    }
                    else
                        break;
                }
            }
        }
        
        
    }
    
    int pesquisaBinaria(struct funcionario *p, int inicio, int fim, int busca){
        int meio;
        
        if(inicio>fim)
            {return -1;} 
        
        meio = (inicio + fim) / 2;
        
        if( (*(p+meio)).nrmatricula > busca){
            return( p,inicio, meio - 1, busca);
        }
        else if( (*(p+meio)).nrmatricula < busca){
            return pesquisaBinaria(p, meio + 1, fim, busca);
        }
        else{//se não é nem maior nem menor logo foi encontrado o cadastro 
            return meio;
        }
    }

     

    Pesquisa.txt

    • Obrigado 1
  5. /*
    preciso da ajuda de vocês na aba comentada abaixo
    */#include <stdio.h>
    #include <string.h>
     int main() 
    { 	char frase[100], criptografia[100];
    	char *pf, *pc;
    	int tamfrase;
    	int *pt;
    	
    	pf = &frase[0];
    	pc = &criptografia[0];
    	pt = &tamfrase;
    	
    	printf("escreva a frase a ser criptografada:\n");
    	scanf("%[A-Z a-z]", pf);
    	
    	*pt = strlen(pf);
    	
    	pf = &frase[tamfrase - 1];
    	
    	
    	while(*pt > 0)
    	{
    		/*if (*pt != 'A' || *pt != 'a' ||
    			*pt != 'E' || *pt != 'e' || 
    			*pt != 'I' || *pt != 'i' || 
    			*pt != 'O' || *pt != 'o' || 
    			*pt != 'U' || *pt != 'u')
    			{
    				*pt = '#';
    			}
    		*/
    		*pc = *pf;
    		pc++;pf--;tamfrase--;
    	}
    	 *pc='\0';
    	printf("%s", criptografia);
    }

    não sei por que o código acima esta dando erro, se alguém me ajudar com a correção ficarei muito grato

    • Curtir 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!