raf89 0 Denunciar post Postado Setembro 10, 2007 Eu estou com um problema. Meu programa funciona, mas queria fazer um looping para ele para apenas quando digitar EOF. Outro problema é que na segunda volta ele exibe na tela" Digite a nota: valor incorreto". #include <stdio.h>#include <stdlib.h>int main(){ char nota; printf("\t\t\tPrograma conversor de notas\n\n\n"); do{ printf("Digite a nota do aluno: "); scanf("%c", ¬a); switch(nota){ case'a': case'A': case'b': case'B': printf("APROVADO\n"); break; case'c': case'C': printf("EXAME\n"); break; case'd': case'D': case'e': case'E': printf("REPROVADO\n"); break; default: printf("Valor incorreto\n"); break; }}while((nota = getchar()) != EOF); system("pause");} Compartilhar este post Link para o post Compartilhar em outros sites
Myho 2 Denunciar post Postado Setembro 10, 2007 Bem, esse EOF seria o q? um numero negativo? Nao entendi muito bem esse EOF pq soh usei ele quando trabalhei com arquivos txt, ai EOF indicava q nao tinha mais linhas a serem lidas. Nesse seu programa, como você mesmo disse, ele roda e o unico problema q achei é quando digito valor negativo. é isso? Compartilhar este post Link para o post Compartilhar em outros sites
omar.pessoa 1 Denunciar post Postado Setembro 11, 2007 Amigo EOF... ou "EOF" ? (EOF - END OF FILE) Acho que você deveria dar um scanf("%s", cbuffer), e um strcmp(cBuffer, "EOF")... Acho que foi isso que entendi. Valeu amigo. Compartilhar este post Link para o post Compartilhar em outros sites
raf89 0 Denunciar post Postado Setembro 13, 2007 O EOF eh para o programa ser executado até que alguem digite EOF( end of file) vi em um livro de biblioteca alguma coisa como while( (nota = getchar()) != EOF ). Alem disso tem aquele problema que ele funciona na primeira vez. Depois ele faz:Digite a nota do aluno: Valor invalidoDigite a nota do aluno:Entao só na segunda linha ele le o valor. Compartilhar este post Link para o post Compartilhar em outros sites
omar.pessoa 1 Denunciar post Postado Setembro 14, 2007 EOF é utilizado para fim de arquivos... não me lembro muito bem, mas senão me engano é a concatenação do caracter 10 e do caracter 26.Se eu fosse você... trocaria o EOF pela tecla ESC.Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
raf89 0 Denunciar post Postado Setembro 15, 2007 Desculpa pessoal. Acho que eu passei o prgrama errado. Por isso nao tava entendendo voces. O "certo" eh esse: #include <stdio.h>#include <stdlib.h>int main(){ char nota; printf("\t\t\tPrograma conversor de notas\n\n\n"); printf("Digite a nota do aluno: "); scanf("%c", ¬a); while((nota = getchar()) != EOF){ switch(nota){ case'a': case'A': case'b': case'B': printf("APROVADO\n"); break; case'c': case'C': printf("EXAME\n"); break; case'd': case'D': case'e': case'E': printf("REPROVADO\n"); break; default: printf("Valor incorreto\n"); } } system("pause");} Compartilhar este post Link para o post Compartilhar em outros sites
omar.pessoa 1 Denunciar post Postado Setembro 17, 2007 Primeiro equivoco...Você dá um scanf e depois um getchar... Ainda não entendi o que seria o EOF... Não conheço essa tecla. Você está digitando "EOF"?Amigo... se for "EOF" não se pode comparar com um char. Você teria que usar a função srtcmp(nota, "EOF").E ainda nota não poderá ser um char... teria que ser um char*.Outra coisa... utilize sempre o scanf para char *.Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
raf89 0 Denunciar post Postado Setembro 29, 2007 Pessoal. Valeu por tentar ajudar, mas nao dá. Desisto desse programa. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
omar.pessoa 1 Denunciar post Postado Outubro 1, 2007 Amigo.Não conheço a tecla EOF.Abraço. Compartilhar este post Link para o post Compartilhar em outros sites