Enviado em 06/06/2020 - 21:46h
#include <stdio.h>Enviado em 06/06/2020 - 21:50h
Fiz algumas modificações, ele executa, mas ainda apresenta esse erro:Enviado em 07/06/2020 - 02:11h
gcc Test.c -o Test -O3 -Wall -pedantic -pedantic-errors -Werror
#include <stdio.h>
//#include <stdlib.h> // Não precisa disso!
#include <string.h>
int main(void) {
/* VOCÊ NÃO PODE DECLARAR ASSIM: Ou é um vetor de caracteres ou é 1 caracter! para declarar vetor já que vai armazenar um texto, vc precisa informar a Qtd de caracteres que esse texto terá!
Nessa situação seria bom vc estudar como declarar variáveis, vai te ajudar bastante! */
//char log[], sen[]; // ERRADO!
char log[101], sen[101]; // Declarei para 100 Caracteres
int key = 0;
char login[] = "admin";
char senha[] = "qwerty";
while(key == 0) {
printf("Digite o login: ");
// isso está bugado e não vai funcionar corretamente porque precisa tratar o lixo do Buffer
//scanf("%s", &log);
scanf("%100[^\n]", log); // Pega até 100 caracteres digitados
while(getchar() != '\n'); // Para Limpar o Buffer, ou seja, os caracteres restantes que foram ignorados no scanf
printf("Digite a senha: ");
// isso está bugado e não vai funcionar corretamente porque precisa tratar o lixo do Buffer
//scanf("%s",&sen);
scanf("%100[^\n]", sen); // Pega até 100 caracteres digitados
while(getchar() != '\n'); // Para Limpar o Buffer, ou seja, os caracteres restantes que foram ignorados no scanf
// Coloquei senha na frente para ficar na mesma ordem do login, pois estava invertido
if((strcmp(login, log) == 0) && (strcmp(senha, sen) == 0))
key = 1;
// Você também poderia declarar assim, sem usar as 2 variáveis que vc declarou acima, reduzindo a qtd de código escrito.
// if((strcmp("admin", log) == 0) && (strcmp("qwerty", sen) == 0))
}
printf("Logado com sucesso!!!\n");
}
Enviado em 07/06/2020 - 11:07h
Vamos por partes. Em c, strings são tratadas como vetor de char. Então para declarar uma string, precisamos declarar um vetor de char:char string[]Daqui, nós temos três opções:
char string[101]; // Armazena 100 caracteres
char string[] = "Essa e minha string."; // O tamanho do vetor será identificado automaticamenteO problema aqui é que se você precisar armazenar mais caracteres, não vai conseguir.
char string[255] = "Oi"; // Esta usando 3 caracteres, mas pode armazenar ate 254Nesse exemplo, a string está preenchida ocupando um certo espaço, mas caso seja necessário, pode armazenar mais caracteres.
Instalação do Ambiente .NET (#C) no Slackware 15.0
Kali On The Box - Colocando o Kali para rodar no Raspberry Pi
Como contribuir com a atualização de pacotes no Void Linux
Desabilitar o sininho (bell) no terminal
Como encriptar o diretório home do seu usuário
Criando imagens com IA via terminal
Samba4 Erro no Bind(Named) zone XXX.in-addr.arpa/NONE: has no NS records [RESOLVIDO]
Ajuda com atualizações Linux (1)
Não aparece nada na minha source.list (0)
Distribuições imutáveis - alguém usa? (0)