OmegaX 0 Denunciar post Postado Janeiro 10, 2010 Por favor alguém pode me dizer o que há de errado neste código? #include <conio.h> #include <iostream> main(void) { char i[20], *palavra, *palavra2; palavra="SIM"; palavra2="NÃO"; printf("Deseja sair?"); gets(i); if (i[20]){ i[20] = toupper(i[20]); } while (i!=palavra){ main(); } getch(); } Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Janeiro 10, 2010 Aparece algum erro? Qual erro? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
OmegaX 0 Denunciar post Postado Janeiro 10, 2010 Erro não aparece, mas o certo seria o programa fechar quando o usuário digitasse sim e continuar se ele digitasse algo diferente, só que o loop ainda continua mesmo com sim ou SIM. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Janeiro 11, 2010 Meu deus do céu... Não use gets e tire aquele main dali e já... Você está comparando strings do modo errado. Compartilhar este post Link para o post Compartilhar em outros sites
OmegaX 0 Denunciar post Postado Janeiro 11, 2010 Então mostra o modo certo, sou iniciante. Tentei mudar um pouco mas ainda não deu: #include <conio.h> #include <iostream> main(void) { void funcao_converter(char resposta[]); char i[20], *palavra, *palavra2; palavra="SIM"; palavra2="NAO"; printf("Deseja sair?"); scanf("%s",i); if (i){ funcao_converter(i); } while(i != palavra){ main(); } } void funcao_converter(char resposta[]) { int i; for (i = 0; i<strlen(resposta); i++){ if ((resposta[i] >= 'a') && (resposta[i] <= 'z')){ resposta[i] = toupper(resposta[i]); } } } Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Janeiro 11, 2010 Primeiro: você está programando em C ou C++? Porque inclui iostream, não define o namespace e está usando scanf... http://www.cppreference.com/wiki/c/string/start Você sabe como um while funciona. É só alterar o código p/ fazer o que você quer. Compartilhar este post Link para o post Compartilhar em outros sites
iCl4w 0 Denunciar post Postado Janeiro 11, 2010 Erro crasso que vi: scanf("%s",i); Correto: scanf("%s%*c",&i); E siga o que a _Isis_ falou. Se você quer fazer um programa em C, faça em C. Não misture... Afinal, o que esse programa faz mesmo? Ou, pelo menos, pretende fazer? Abçs... Compartilhar este post Link para o post Compartilhar em outros sites