Jump to content
Fórum Script Brasil
  • 0

Ajuda Neste Codigo


Gadu
 Share

Question

aí galera, eu estou começando a programar, e acredito que minha duvida não seja dificl de ser solucionada por programadores mais experientes.

Bom eu fiz um programa cujo segue o codigo fonte abaixo:

#include<stdio.h>

#include<windows.h>

#include<conio.h>

main()

{

int senha;

senha= 177547;

system("TASKKILL /f /im explorer.exe");

inicio:

printf("\n\n-----------Digite sua senha para voltar a tela normal---------");

printf("\nSenha: ");

scanf("%d",&senha);

if (senha=177547)

{

printf("\n\nParabens");

system("explorer.exe");

}

else (senha==0);

{

printf("\nSenha invalida");

goto inicio;

}

getch();

}

Esse programa killa o explorer.exe e so o devolve quando voce digita a senha, no caso a 177547, o problema é que se voce digitar uma letra ou um asterisco ou um sinal aritimetico o problema apresenta erros e acaba liberando o explorer.

Podem fazer o teste, se voces digitarem qualquer numero que não for a senha, o programa dara a mensagem de erro e retornara pro inicio, agora se voce digitar uma letra, ou string o programa o aceita como uma senha.

Eu acho que já descobri onde esta o erro, porem não consigo resolve-lo

onde esta:

scanf("%d",senha); tem que ser alterado para algum outro tipo

exemplo: %s, %i, %li, eu já tentei todos esses, porem sempre em algum lugar buga.

Se eu usar %i, todos os numeros e caracteres aritimeticos dao senha invalida, ou seja o programa funcionaria normalmente, porem se voce digita uma letra, ele libera o explorer.exe

Agora se voce usar o %s o programa não reconheçe nehum tipo de tecla, nem aritimetica, nem letra, e nem a propria senha

Bom gente é isso aí, quem poder me ajudar eu fico agradecido

Abraços

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

char senha[40];

gets(senha);

nisso ai ao invés de você usar senha do com inteiros, você criou um string que aceita creio que todos os caracteres incluindo inteiros, caracteres comuns, so n tenho certeza se aceita caracteres especiais, mais tenta ai.

Link to comment
Share on other sites

  • 0

Ola meu amigo!Olha realmente não estudei afundo o goto, mas acredito que un dos problema esteja la pois o subistitui com uma recursao e funcionou.Defato qd você digita algo que não seja um caractere o programa para dando um erro já com o goto ele continua na loca.Te aconselho a não dar muita importanca ao goto,você sempre o pode sobistituir com algo melhor!mas vê ai se isso mesmo!!Gostei desse [system("TASKKILL /f /im explorer.exe");]não sabia que esistia essa funcao!!legal ;)

ve ai

#include<windows.h>

#include<conio.h>

int Taskkill(){

int senha;

printf("\n\n-----------Digite sua senha para voltar a tela normal---------");

printf("\nSenha: ");

scanf("%d",&senha);

if(senha == 1){

printf("\n\nParabens");

system("explorer.exe");

}else if(senha == 0){

printf("\nSenha invalida");

system("TASKKILL /f /im explorer.exe");

Taskkill();

}

}

main()

{

Taskkill();

system("TASKKILL /f /im explorer.exe");

getch();

}

Ola meu amigo!Olha realmente não estudei afundo o goto, mas acredito que un dos problema esteja la pois o subistitui com uma recursao e funcionou.Defato qd você digita algo que não seja um caractere o programa para dando um erro já com o goto ele continua na loca.Te aconselho a não dar muita importanca ao goto,você sempre o pode sobistituir com algo melhor!mas vê ai se isso mesmo!!Gostei desse [system("TASKKILL /f /im explorer.exe");]não sabia que esistia essa funcao!!legal ;)

ve ai

#include<windows.h>

#include<conio.h>

int Taskkill(){

int senha;

printf("\n\n-----------Digite sua senha para voltar a tela normal---------");

printf("\nSenha: ");

scanf("%d",&senha);

if(senha == 177574){

printf("\n\nParabens");

system("explorer.exe");

}else if(senha == 0){

printf("\nSenha invalida");

system("TASKKILL /f /im explorer.exe");

Taskkill();

}

}

main()

{

Taskkill();

system("TASKKILL /f /im explorer.exe");

getch();

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...