Ir para conteúdo
Matheus Marqui

Como posso utilizar comando do sistema (system("...")) com variáveis?

Recommended Posts

Opa, gostaria de saber como eu poderia utilizar comandos do sistema com variáveis e se isso é possível...

Ex:

string menuConfig()
{
    system("cls");
    string nl;
    cout << "Configurações e Informações - Versão 1.0.0\n";
    cout << "Cores do programa (system(color nl)) sendo 'n' número e 'l' letra: ";
    cin >> nl;
    system("color "<< nl); //Gostaria de saber como eu poderia fazer isso funcionar, ou algo semelhante...

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá. Vou passar um exemplo d um pequeno exemplo do uso de variável no comando system() q inclusive aborda a questão das cores da letra e do fundo q até mesmo você pode usar em seus projetos.

 

#include <stdio.h>
#include <conio.h>
#include <windows.h>

int tecla()
{
    int varTecla;
    while (1)
    {
        varTecla = getch();
        return varTecla;
    }
}

void cor()
{
	char cor[10] = "Color 0f";
	int c, corL = 0, corF = 0, lugar = 0;

	system("cls");

	system(cor);

	printf("\n\t   Use as setas Direcionais   \n"
		"\t      para mudar de cor       \n"
		"\t  Para voltar ao menu tecle   \n"
		"\t            ENTER             \n"
		"\t                              \n"
		"\t          [ LETRA ]           \n"
		"\t            FUNDO             \n");

	while (1)
	{
		if (_kbhit())
		{
			system("cls");
			c = tecla();

			// 80 para cima
			// 72 para baixo
			// 75 direita
			// 77 esquerda
			// 13 enter

			if (c == 80)
			{
				lugar++;
				if (lugar > 1)
				{
					lugar = 0;
				}
			}
			else if (c == 72)
			{
				lugar--;
				if (lugar < 0)
				{
					lugar = 1;
				}
			}


			else if (c == 13)  // enter
			{
				// comando que preferir, como chamado a uma função, por ex
				exit(0);
			}

			else if (c == 75) // direita
			{
				if (lugar == 0)
				{
					corL++;
					if (corL > 5)
					{
						corL = 0;
					}
				}
				else if (lugar == 1)
				{
					corF++;
					if (corF > 5)
					{
						corF = 0;
					}
				}

			}
			else if (c == 77) // esquerda
			{
				if (lugar == 0)
				{
					corL--;
					if (corL < 0)
					{
						corL = 5;
					}
				}
				else if (lugar == 1)
				{
					corF--;
					if (corF < 0)
					{
						corF = 5;
					}
				}
			}

			if (lugar == 0)
			{
				printf("\n\t   Use as setas Direcionais   \n"
					"\t      para mudar de cor       \n"
					"\t  Para voltar ao menu tecle   \n"
					"\t            ENTER             \n"
					"\t                              \n"
					"\t          [ LETRA ]           \n"
					"\t            FUNDO             \n");
			}
			else if (lugar == 1)
			{
				printf("\n\t   Use as setas Direcionais   \n"
					"\t      para mudar de cor       \n"
					"\t  Para voltar ao menu tecle   \n"
					"\t            ENTER             \n"
					"\t                              \n"
					"\t            LETRA             \n"
					"\t          [ FUNDO ]           \n");
			}


			switch (corL)
			{
			case 0:
				cor[7] = '3';
				break;
			case 1:
				cor[7] = '4';
				break;
			case 2:
				cor[7] = '5';
				break;
			case 3:
				cor[7] = '6';
				break;
			case 4:
				cor[7] = '7';
				break;
			case 5:
				cor[7] = '8';
				break;
			}


			switch (corF)
			{
			case 0:
				cor[6] = '3';
				break;
			case 1:
				cor[6] = '4';
				break;
			case 2:
				cor[6] = '5';
				break;
			case 3:
				cor[6] = '6';
				break;
			case 4:
				cor[6] = '7';
				break;
            case 5:
                cor[6] = '8';
			}
		}

		system(cor);
	}
}


int main()
{
    char *texto = "title Exemplo de Codigo";

    system(texto);

    cor();

    return 0;
}




No método main tbém faço uso d uma variável como parâmetro do comando system(), mas no método cor() isso é melhor trabalhado.

Em virtude do código ser muito extenso, dei uma reduzida na qtde de cores, mas creio q a ideia principal vai conseguir entender.

Só q teria q dar uma revisada na parte do lugar no método cor(), pois como reduzi a qtde de cores pode ser q algo eu tenha esquecido d mudar 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Bruno Goedert Dalmolin
      Não consigo apresentar as palavras equivalentes conseguem me ajudar???
      O código é o seguinte: 
       
      #include <stdio.h>
      char equivale(int ddd){
          switch(ddd){
              case 61:
                  return "Brasilia";
                  break;
              case 71:
                  return "Salvador";
                  break;
              case 11:
                  return "Sao Palo";
                  break;
              case 21:
                  return "Rio de Janeiro";
                  break;
              case 32:
                  return "Juiz de Fora";
                  break;
              case 19:
                  return "Campinas";
                  break;
              case 27:
                  return "Vitoria";
                  break;
              case 31:
                  return "Belo Horizonte";
                  break;
          }
      }
      int main(){
          int ddd;
          scanf("%d",&ddd);
          equivale(ddd);
          printf("%d",equivale(ddd));
      }
    • Por Jefferson andre
      Ola,
       
      Criei uma rotina que eh chamada dentro do html, esta rotina abre um banco de dados e pega os valores de algumas variaveis contendo caminhos para video aulas e entao fecha o banco de dados, ao retornar ao html eu quero usar estas variaveis para abrir videos que estarao sendo demonstrados em forma de links.
       
      A mesma situacao foi resolvida dentro do php com imagens para uma outra situacao mas nao consigo fazer isso para videos, se eu conseguir nao preciso puxar as variaveis para o html.
      <?php
      // fazendo uma conexão com o banco de dados
      include("conexao.php");
      //pesquisa
      $resultado = $arquivo->query("SELECT * FROM divulgacao WHERE ativo = 'S' AND tipo = 'IM'");
      if (false === $resultado) {
          echo mysqli_error();
      }
      $linha=mysqli_fetch_array($resultado);
      $caminho_divulgacao = $linha["caminho"];
       
      //echo "<font face='Arial'><span class='style14'>$caminho_divulgacao</span></font>";
      $exibir = "<img src=".$caminho_divulgacao." /><br />";
      echo $exibir ;
       
      mysqli_close($arquivo);
      ?>
       
      Alguma dica ?
    • Por MAKAVELIQUE
      Saudações, criei meu perfil hoje, sou iniciante neste mundo da programação, alguém poderia me ajudar a compreender isso? é um código em javascript que eu estou escrevendo,    variáveis b1, b2, b3 e c1, c2 e c3 recebem valores parecidos com estes, contudo,   parece que os if´s não estão fazendo as devidas verificações pra abrir o document.write de acordo com cada condição...
      <script> function teste() {     img1.src = "foto.png";                b1="J";// esses valores podem variar...     c1="C";// esses valores podem variar...     b2="J";// esses valores podem variar...     c2="C";// esses valores podem variar...     b3="J";// esses valores podem variar...     c3="C";// esses valores podem variar...     if(b1 == c1 && b1 == b3){//daqui pra baixo parece que não funciona...     if(c1==c2 && c2==c3){                 document.write ("1");     }         if(c1!=c2 && c2 != c3 && c1!= c3){     document.write ("2"); }          if(c1== c2 && c1 != c3 or c2 == c3 && c2 != c1 or c1== c3 && c2 != c1 ){       document.write ("3"); } } } </script> <a href="#" onClick="teste();"><img style="position:absolute; left:20px; top:275px; " src="imagem.gif" name="img1"/></a>  
      <script> //Observação: assim funciona:  function teste() { img1.src = "foto.png";  } </script> <a href="#" onClick="teste();"><img style="position:absolute; left:20px; top:275px; " src="imagem.gif" name="img1"/></a>  
    • Por EduardoLenz
      Olá, pessoal,
       
      Mexo com microcontroladores, antigamente com PIC e agora com ARM (plataforma LPCXpresso). 
      Ambos utilizam a linguagem C. 
       
      Meu problema é o seguinte: Preciso converter um caractere que vem da UART (porta de comunicação). No PIC havia uma função pronta para tal, no ARM não. 
       
      O caractere chega assim, por exemplo: P123 (tudo junto), e eu queria separar em:
      dado_recebido[]={'P', '1', '2', '3'}; 
      Para poder utilizar um switch 
      switch(dado_recebido[0])
      {
      case 'P':....
      }
       
      alguém tem alguma ideia de como posso fazer a conversão? 
       
      Agradeço desde já. 
    • Por sheepziiin
      Boa tarde colegas !
      Estou quebrando a cabeça com um job para tratamento de logradouros. Segue o raciocínio:  
      Tenho uma lista com todos os endereços do estado de São Paulo, onde os mesmos são extraídos da seguinte forma:
       
      Exemplo:
      AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A AL-ANAPURUS/EDI:BOULEVARD/BLC:A-777-AP - Apartamento: 131 AL-ARAPANES/EDI:CDOE,6-5ºANDAR-309-AP - Apartamento: 42 AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 102 AL-ARAPANES/EDI:COND.ED.MOEMA DUPLEX LIFE-1142-AP - Apartamento: 42 AL-ARAPANES/EDI:PARC BRUMENADI-982-AP - Apartamento: 191 AL-BARROS/EDI:PERVAL-186-AP - Apartamento: 1601 AL-BARROS/EDI:PERVAL-186-BL - Blocos: B AP - Apartamento: 1302 AL-CAETANO,S/CDM:ED. GIARDINO_CDOE_1_ANDAR_11 A 13-165-AP - Apartamento: 63 AL-CAETANO,S/EDI:ESPLENDOR-1234-AP - Apartamento: 71 AL-CAETANO,S/EDI:MAGENTA I_CDOE_1_ANDAR_7 A 10-2575-AP - Apartamento: 94 AL-CALCUTA-195-AP - Apartamento: 02 AL-CAMPESTRE-728-CS - Casa: 1 AL-CASA BRANCA/CDM:BRISTOL-851-CJ - Conjunto: 11 AN - Andar: 01 AL-CASA BRANCA/CDM:SAINT SIMON-667-AP - Apartamento: 11
      Notem que os casos "não tem um padrão" (até tem por tipo de residencia). Utilizei inúmeras postagens aqui do fórum e consegui solucionar os casos para residencias (padrão TIPO_LOG;LOG;COMPL;NUM), no entanto as formulas e soluções aqui indicadas por vocês "param" na primeira sequencia numérica, entretanto para a maioria dos casos, o texto continua com letras, números e caracteres.
       
      Segue o padrão final que preciso chegar.
      Exemplo: AL-AFONSO SCHMIDT/CDM:ED. SOPHIS SANTANA_COM PRUMADA/BLC:A-555-AP - Apartamento: 61 A
      Resultado Tratado: AFONSO SCHMIDT 555
       
      Desde de já muito obrigado pelos retornos que certamente virão.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.