Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
#include <stdio.h>
#include <stdlib.h>
main (){
char nome;
printf ("Introduza o nome do usuario deste computador\n");
scanf ("%c",&nome);
if (nome == 'liinow'){
printf ("Acertou!\n");
}
else
printf ("Noob\n");
while (nome != 'liinow');{
printf ("Usuario Errado\n");
scanf ("%c",&nome);
}
system ("pause");
}
Olá caros Imaster ;D
Sou iniciante em C, devido a isto... possuo varias duvidas e erros!
por favor, se alguem tiver disponibilidade de me ajudar... Ficarei grato =}
Obrigado pela Atenção.
Abraços!
Olá LordEvil
Obrigado pela atenção ^^
Bom... nao sei por qual motivo, o programa nao executa corretamente..ele simplesmente trava
não consigo identificar o erro, esse é o principal problema.
Abraços!
main() {
Sua declaração de main() está errada. A declaração mais correta em C seria:
int main(void) {
main() precisa de um tipo de retorno, que no caso seria int. Também é bom colocar esse void, por um padrão da C...
Aí, colocando isso, você deverá adicionar um "return 0;" no final de main().
return 0;
Você colocou um ; depois do while, deixando o código sem sentido:
while (nome != 'liinow');
Remova-o.
while (nome != 'liinow')
E, finalmente, o motivo de seu erro:
Um char não é uma string. Ele só armazena UM caracter, não vários. O que acontece, então, é que você digita mais de um caracter, e, então, acontece memory overflow, ou seja, passar do limite da memória reservada para a variável char que você declarou. Acontecendo isso, ele pode substituir outras variáveis de outros programas, podendo causar travamentos e erros.
Ou seja, se deseja usar uma string, terá que fazer uma matriz (ou vetor, como chamam) de caracteres e usar %s, e não %c. Mas precisa-se de uma matriz de caracteres para isso funcionar, um char só não basta, pois ele consegue armazenar somente 1 caracter (lol)...
Agora, para resolver o problema, tente usar só um caracter. Aí, quando usar só um caracter, coloque 'caracter' ao invés de "caracter", pois isso sinalizará ao compilador que é, de fato, um caracter.
Quando aprender sobre strings, modifique seu programa para aceitá-las.
Código que provavelmente está sem bugs (sem compilador aqui para testar ;D):
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char nome;
printf ("Introduza o nome do usuario deste computador\n");
scanf ("%c",&nome);
if (nome == 'l')
printf ("Acertou!\n");while (nome != 'l')
{
printf ("Usuario Errado\n");
scanf ("%c",&nome);
}
system ("pause");
return 0;
}
Abraços :D
Realmente Renato Utsch, dessa forma que voce citou acima funcionou perfeitamente! =P
Preciso me aperfeiçoar em "strings"
Estou no 1º Semestre do curso de Analise e Desenvolvimento de Sistemas na Fatec, e ainda nao aprendi nada relacionado a strings
=(
Abraços!
Renato Utsch
Só para tirar as dúvidas, é o LordEvil, só mudei de nome ;D
Preciso me aperfeiçoar em "strings"Estou no 1º Semestre do curso de Analise e Desenvolvimento de Sistemas na Fatec, e ainda nao aprendi nada relacionado a strings
Sim, tenha paciência. Eles vão te ensinar ;D
É bem mais complicado do que parece. Mas, se quiser adiantar a matéria, sugiro que leia um bom livro (nada de livros em português e apostilas, nem tutoriais na internet): C Programming: a Modern Approach - Second Edition.
Qualquer coisa mais é só perguntar ;D
Caso resolvido?
Abraços :D
Strings, em C, são vetores de char cujo valor do último elemento é '\0'. Esse valor indica o fim da string.
Gostaria de fazer um adendo: o return na main() é optativo. Na versão atual da linguagem (C99), ele é implícito se não for explicitado.
Gostaria de fazer um adendo: o return na main() é optativo. Na versão atual da linguagem (C99), ele é implícito se não for explicitado.
Interessante... não sabia disso... mas especificar nunca é problema...
Normalmente, se uma função tem valor de retorno, devemos especificar um return, e não acho que deveríamos abrir excessões. Isso leva a memorização que é algo que se perde...
Mas, mesmo assim, é bom saber...
Abraços :D
Olá!
Qual é o seu problema no código acima?
Abraços :D