Ir para conteúdo

Foto

Dúvida sobre C


  • Por favor, faça o login para responder
11 respostas neste tópico

#1
Felipeld

Felipeld

    Novato

  • Validando
  • Pip
  • 45 posts
Alguém sabe como faço para usar comandos do prompt do Windows em um programa C? Estava curioso como fazer um programa em C que desligue o pc!

#2
netcriptus

netcriptus

    Coordenador de Moderação

  • Coordenador
  • 1.846 posts
  • Sexo:Masculino
  • Local:Curitiba, PR
Procure como fazer chamadas ao sistema em C. Com as chamadas, você usa comandos de prompt dentro do programa.
Linha Defensiva no Twitter!
Imagem Postada
Sorria, você está sendo Googlado.

#3
SylarBoon

SylarBoon

    Membro Avançado

  • Membro
  • PipPipPip
  • 321 posts
  • Local:Itu / SP
se não me engano é System("COMANDOS");
[ Linha Defensiva no Twiitter ]
Imagem Postada
Nunca desestimule alguém que evolui, não
importa quão lenta seja a evolução.
(Desconhecido)

#4
Tchovis

Tchovis

    Novato

  • Novato
  • Pip
  • 2 posts
Ontem eu tava atoa aqui em casa e fiz um programa bem legal

Dentro do codigo ele lia uma variavel e dependendo do numero ele abria o
bloko de notas
explorer
calculadora

basta você entrar na net e descobrir o comando para ligar e desligar mas em geral a sintaxe é

system ("notepad.exe"); por exemplo para abrir o bloko de notas

#5
FIR3Fl4M3

FIR3Fl4M3

    Membro

  • Membro
  • PipPip
  • 73 posts
  • Local:JP-PB
Salve galera, aproveitando o topico vou postar aqui uma duvida bem besta.

To fazendo algo aqui pra fixar o conteudo.

#include<stdio.h>
#include<stdlib.h>

char x,y;

int main(void)
{
  printf("Digite a primeira letra do seu nome\n");
  scanf("%c ",&x);
  printf("Digite a segunda letra do seu nome\n");
  scanf("%c",&y);
  printf(" A 1 letra do seu nome e %c e a 2 e %c \b", x ,y);
  system("PAUSE");
}


se eu digito f
O que aparece é: A primeira letra do seu nome e f e a segunda e....

Aqui ele sai do programa de uma hora pra outra sem apresentar a segunda letra.

Se alguém puder me ajudar a entender esse problema agradeço.

Obs: Estou usando o codeblocks para aprender. :unsure:

Valeu :legal:
Há pessoas que desejam saber só por saber, e isso é curiosidade; outras, para alcançarem fama, e isso é vaidade; outras, para enriquecerem com a sua ciência, e isso é um negócio torpe: outras, para serem edificadas, e isso é prudência; outras, para edificarem os outros, e isso é caridade. (S. Tomás de Aquino)

#6
Astromech

Astromech

    Moderador

  • Moderador
  • 2.047 posts
  • Sexo:Masculino
  • Local:Porto Alegre - RS
O programa corrigido:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  char x, y;

  printf("Digite a primeira e a segunda letra de seu nome:\n\n");
  scanf("%c %c", &x, &y); 
  printf("\nA primeira letra do seu nome é %c e a segunda é %c\n\n", x, y);
 
  system("PAUSE");	
  return 0;
}

Bem, veja na primeira linha, eu diminui de dois printf, para apenas um, dessa forma você atribui os caracteres em apenas uma função ("%c %c", &x, &y), fica mais fácil até de trabalhar. Creio que o problema estava justo nisso também, quando você possuía os dois printf para escrever cada letra, o programa no segundo já encerrava.
Eu não entendi o porque de você colocar um \b aqui " printf(" A 1 letra do seu nome e %c e a 2 e %c \b", x ,y);"

Utilizei o DEV C++, mas é a mesma coisa que no CodeBlocks ;)

#7
FIR3Fl4M3

FIR3Fl4M3

    Membro

  • Membro
  • PipPip
  • 73 posts
  • Local:JP-PB

O programa corrigido:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  char x, y;

  printf("Digite a primeira e a segunda letra de seu nome:\n\n");
  scanf("%c %c", &x, &y); 
  printf("\nA primeira letra do seu nome é %c e a segunda é %c\n\n", x, y);
 
  system("PAUSE");	
  return 0;
}

Bem, veja na primeira linha, eu diminui de dois printf, para apenas um, dessa forma você atribui os caracteres em apenas uma função ("%c %c", &x, &y), fica mais fácil até de trabalhar. Creio que o problema estava justo nisso também, quando você possuía os dois printf para escrever cada letra, o programa no segundo já encerrava.
Eu não entendi o porque de você colocar um \b aqui " printf(" A 1 letra do seu nome e %c e a 2 e %c \b", x ,y);"

Utilizei o DEV C++, mas é a mesma coisa que no CodeBlocks ;)

Salve Astromech,

Cara seguinte eu fiz exatamente isso que você fez também e realmente rodou normal por isso eu postei o outro codigo que tava dando erro, pois eu queria entender o que tinha de errado no outro. Para que eu não cometa erros do mesmo tipo ou parecidos.

Mas valeu pela boa vontade de me ajudar, sua dica ajudou.

O \b eu coloquei ali para testar uma outra forma, pois eu tava dando uma olhada em uma apostila de programação em C e vi que tinha essa outra forma então coloquei para ver o q ela faz.

Pelo visto, se fazemos tudo em um só evitamos esse erro, pois ao mudar o programa passou a rodar normal.

Abraço e mais uma vez obrigado pela ajuda. :legal:
Há pessoas que desejam saber só por saber, e isso é curiosidade; outras, para alcançarem fama, e isso é vaidade; outras, para enriquecerem com a sua ciência, e isso é um negócio torpe: outras, para serem edificadas, e isso é prudência; outras, para edificarem os outros, e isso é caridade. (S. Tomás de Aquino)

#8
netcriptus

netcriptus

    Coordenador de Moderação

  • Coordenador
  • 1.846 posts
  • Sexo:Masculino
  • Local:Curitiba, PR
O \b apaga um caracter. Equivale a um backspace.

Essas são as codificações padrão em C. Além do \b, posso citar alguns outros exemplos:

\n - Quebra de linha
\t - tabulação
\a - bipe (bem chato, use com bastante moderação, ou melhor, nem use)

Existem outros, a maioria ligado a formatação da saída.
Linha Defensiva no Twitter!
Imagem Postada
Sorria, você está sendo Googlado.

#9
Astromech

Astromech

    Moderador

  • Moderador
  • 2.047 posts
  • Sexo:Masculino
  • Local:Porto Alegre - RS

O \b apaga um caracter. Equivale a um backspace.

Essas são as codificações padrão em C. Além do \b, posso citar alguns outros exemplos:

\n - Quebra de linha
\t - tabulação
\a - bipe (bem chato, use com bastante moderação, ou melhor, nem use)

Existem outros, a maioria ligado a formatação da saída.

Boa netcriptus :legal:

#10
Proteus

Proteus

    Membro

  • Membro
  • PipPip
  • 136 posts
Eu sei porque tava dando erro mas a pessoa q estava com o erro nem vai olhar mais o tópico mesmo... =/, tinha q usar um fflush=stdin antes da segunda leitura, não lembro direito como era a função...

#11
dstter

dstter

    Novato

  • Novato
  • Pip
  • 13 posts
apenas acrescentando, o comando windows para desligar o sistema é o shutdown

Com shutdown /? no prompt de comando você vê os parametros e as opções para desligar :)

#12
darkcripter

darkcripter

    Novato

  • Novato
  • Pip
  • 47 posts
Esse programa e facil exemplo:

#include <stdio.h>
#include <stdlib.h>

int main()
{
system("shutdown /r");
return(0);
}


não sei se o comando e assim , faz tempo que não mexo no windows
Analisando de malwares.
Imagem removida.




0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos