Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) For não ler String


DsrGO

Pergunta

Estou tentando fazer um algoritmo para um exercicio de um exame de vestibular, só que ele não lê a string dentro do for e pula direto para a variavel inteira logo abaixo. Já tentei pesquisar sobre o assunto não achei nada. O que eu faço?

#include<stdio.h>
#include<conio.h>
int main(){
    char nome[5000][50];
    int quantos,qt=0,candidato[5000],aluno=1,qn=0;
    printf("digite quantos candidatos prestaram o exame: ");
    scanf("%d",&quantos);
    for(qt=0,qn=0;qt<quantos,qn<quantos;qt++,qn++){
                              printf("\nCandidato %d:",aluno);
                              printf("\nNome: ");
                              gets(nome[qn]);
                              printf("\nNumero de inscricao: ");
                              scanf("%d",&candidato[qt]);
                              printf("\n");
                              aluno=aluno+1;
    }
    aluno=1;
    for(qt=0,qn=0;qt<quantos,qn<quantos;qt++,qn++){
                              printf("\nAluno %d\nNumero de Inscricao: %d\nNome: %s\n",aluno,candidato[qt],nome[qn]);
                              aluno=aluno+1;
                              }
    getch();
    return(0);
}

Editado por Jonathan Queiroz
Remover palavra "help" do título conforme regra 3.6 (Jonathan)
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom dia

DsrGO,

o problema que você está tendo é algo muito comum de acontecer.

O que ocorre é que o gets está pegando buffer do teclado assim que entra nessa instrução, por isso passa direto por ele e chama a próxima função.

Para resolver isso, coloque antes do gets o comando fflush(stdin)

assim

printf("\nNome: ");
 fflush(stdin);
 gets(nome[qn]);

Com esse código, ele irá limpar o buffer do teclado, sendo assim você poderá digitar o nome corretamente.

OBSERVAÇÃO: Faça uso do fflush em todas as vezes que precisar ler uma string com gets. Evita erros como esse, ok?

Poste o resultado e qualquer duvida poste aqui também,

Att

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...