Felipeld

Dúvida sobre C

12 posts neste tópico

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure como fazer chamadas ao sistema em C. Com as chamadas, você usa comandos de prompt dentro do programa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
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:

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.