Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

raf89

problema com char

Recommended Posts

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", &nota);                           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

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

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

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

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

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", &nota);    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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.