Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Skapiha69

Erro que eu nao percebo :/

Recommended Posts

Boas, eu comecei hoje a programar em C e no meu primeiro programa surgiram umas duvidas que mesmo pesquizando no google nao consegui resolver, alguem pode-me, para alem de resolver, explicar porque esta mal ? Obrigado

 

PROGRAMACAO:

#include

int main()

{

printf("Password");

char input[2];

if(strcmp(input, "\n") == skapinha)

{

printf("Welcome President, please be welcome to NSA, you can now start to programm");

}

else

{

printf("Password has not been reconigzed, are you sure that you should be here?");

}

}

 

 

LOG DE ERROS

-------------- Build: Debug in SegurancaPortal (compiler: GNU GCC Compiler)---------------

 

gcc -Wall -g -c /home/mano/Desktop/SegurancaPortal/main.c -o obj/Debug/main.o

/home/mano/Desktop/SegurancaPortal/main.c: In function main:

/home/mano/Desktop/SegurancaPortal/main.c:4:2: warning: implicit declaration of function printf [-Wimplicit-function-declaration]

printf("Password");

^

/home/mano/Desktop/SegurancaPortal/main.c:4:2: warning: incompatible implicit declaration of built-in function printf [enabled by default]

/home/mano/Desktop/SegurancaPortal/main.c:6:28: error: skapinha undeclared (first use in this function)

if(strcmp(input, "\n") == skapinha)

^

/home/mano/Desktop/SegurancaPortal/main.c:6:28: note: each undeclared identifier is reported only once for each function it appears in

/home/mano/Desktop/SegurancaPortal/main.c:14:1: warning: control reaches end of non-void function [-Wreturn-type]

}

^

Process terminated with status 1 (0 minute(s), 0 second(s))

1 error(s), 3 warning(s) (0 minute(s), 0 second(s))

Compartilhar este post


Link para o post
Compartilhar em outros sites

implicit declaration of function printf

Para resolver isso, basta dar #include em stdio.h:

#include <stdio.h>

skapinha undeclared (first use in this function)

skapinha não foi definida em lugar algum

 

note que strcmp retorna um inteiro. veja http://www.cplusplus.com/reference/cstring/strcmp/

Compartilhar este post


Link para o post
Compartilhar em outros sites

O skapinha era suposto ser uma pass, eu queria que o meu programa visse o input, e se fosse skapinha entao fazer o que esta a seguir, como o devo fazer?

 

EDIT1: Estou tentando faze-lo em C e nao em C++

Compartilhar este post


Link para o post
Compartilhar em outros sites

EDIT1: Estou tentando faze-lo em C e nao em C++

O nome do site é CPlusPlus, mas strcmp é usado em C também. Veja com mais atenção o link que mandei

 

 

Você pode fazer algo assim:

 

#include <stdio.h>
#include <string.h>
 
int main()
{
    char *senha = "skapinha";
    char input[32];
 
    printf( "Digite a senha:\n" );
    scanf( "%s%*c", input );
 
    if ( strcmp( senha, input ) == 0 )
    {
        printf( "Senha correta\n" );
    }
    else
    {
        printf( "Senha incorreta\n" );
    }
 
    return 0;
}

 

 

PS: O %*c no scanf ignora o \n ao teclar ENTER

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peco desculpa apenas responder tao tarde, o que me mandou funcionou, obrigado, tem alguma hipotese de enquanto eu estiver a digitar a pass a pessoa que esta a ver, e eu inclusive, apenas ver * no sitio da pass? OBrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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