Ir ao conteúdo
  • Cadastre-se

C dificuldade em usar o while e string


Posts recomendados

Boa noite, 

 

A imagem adicionada é sobre o exercício que estou com problemas. Sou estudante e comecei agora a aprender em C, e não estou conseguindo desenvolver meu código corretamente. se alguém puder me ajudar fico agradecido. 

#include<stdio.h>
int main(){
    int codigo, senha;
    char nome[6]="helio",nome2[6]; 

    printf("Para prosseguir escolha uma das tres opcaos. (1) login, (2) alterar senha, (3) sair. \n");
    scanf("%d", &codigo);
    if(codigo=1){
        printf("Informe o nome de login: \n");
        while(scanf ("%s", &nome2), nome2!="helio"){
        printf("Acesso negado \nInforme o nome de login: \n");
        }
        printf("Informe a senha: \n");    
        while(scanf ("%d", &senha), senha!=100932){
        printf("Acesso negado \nInforme a senha: \n");
        }
        printf("Acesso Permitido.");
    }
        
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WhatsApp Image 2021-05-04 at 21.27.11.jpeg

Link para o post
Compartilhar em outros sites

@Helio Junnior Sartor Dalmolin  erros de syntaxe's :

#include <stdio.h>
#include <stdlib.h>
#define cls system("cls");
void delay();
// aqui precisa da biblioteca string.h
int main()
{
    int codigo, senha, ret;
    char nome[7]={"helio"},nome2[7];  // precisa de um espaço a mais para o compilador inserir o "\0" finalizador de string
                                      // e das chaves para adicionar na variáveL pois é linguagem c e não c++
    do
    {
        cls
        printf("Para prosseguir escolha uma das tres opcaos.\n");
        printf("(1) login\n");
        printf("(2) alterar senha\n");
        printf("(3) sair.\n");
        scanf("%d", &codigo);
    }while(codigo < 1 || codigo > 3);
    // if(codigo=1)  comparacoes sao com dois sinAis de iGualdade
    // e apenas Hum é para adiçao
    if(codigo == 1)
    {
        //while(scanf ("%s", &nome2), nome2!="helio"){   isso asim nesse formato não funciona
        do
        {
            cls
            printf("Informe o nome de login: ");
            scanf("%s",nome);
            ret = strcmp(nome,nome2);
            if(ret != 0) // se for zero , as strings serão iguais
            {
                printf("Acesso negado \nInforme o nome de login:\n");
                delay();
            }
        }while( ret ); // siginifica enquanto ret diferente de zero .
        printf("Informe a senha: ");    
        while(scanf ("%d", &senha), senha!=100932) // aqui também não funciona assim , modifique igual ao primeiro
        { 
            printf("Acesso negado \nInforme a senha: ");
        }
        printf("Acesso Permitido.");
    }
    return 0;
}
void delay()  // Rotina PerDe tEmPo
{
    for(int i=0; i<60000; i++)  
        for(int i=0; i<20000; i++);
}

 

  • Curtir 1
Link para o post
Compartilhar em outros sites

Oih  @Helio Junnior Sartor Dalmolin  o enunciado é para exercício das ‘strings’, sua senha também é ‘string’. USUÁRIO e SENHA são STRINGS!

#include<stdio.h>
#include<string.h>
int main( ){
        char _usuario_[24]= {"helio"}, _senha_[24]= {"XXXXX"}; 
        printf( "Para prosseguir escolha uma das tres opcaos.\n\n" 
    
        "(1) Login\n"
        "(2) Alterar senha\n"
        "(3) Sair\n"
        "( )\b\b" );
        int codigo= 0;
        scanf( " %d", &codigo );
        if( codigo == 1 ){
                char usuario[24]= {""}, senha[24]= {""};
                printf("Informe o nome de login: \n");
                while(  scanf (" %s", usuario), strcmp(usuario,_usuario_)/* aqui use a função que compara strings */ ){
                        printf("Acesso negado %s \n"
                               "Informe o nome de login: \n", usuario);
                }
                printf( "Informe a senha: \n");    
                while(  scanf (" %s", senha),   strcmp(senha,_senha_) ){
                        printf("Acesso negado \n"
                               "Informe a senha: \n");
        }
        printf("Acesso Permitido.");
    }
        
}

 

 

PS: Você pede um de cada vez, penso que deveria ser os dois na mesma linha.

Ou se uma entrada por vez, como está, faça a verificação junta, e não uma de cada vez..

  • Curtir 1
Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!