Ir ao conteúdo

Posts recomendados

Postado

Olá.

Fiz o seguinte código:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char str1[101];
    int x;

    printf("Digite uma string:\n");
    scanf("%100[\nabcde]", str1);
    x = ungetc(' ', stdin);
    printf("ungetc retornou <%d>\n\n", x);

    return 0;
}

Testei em um compilador online e o retorno de ungetc foi esse:

image.png.96a58e6c9e4ce559aa1140429a15c85b.png

Mas no codeblocks aparece -1, acredito que seja EOF:

image.png.cfb55eed1b41ff8f04d8f7c5b8212cb9.png

Alguém saberia o motivo?

Meu compilador é o GNU GCC Compiler.

 

Grato.

Postado

@devair1010 ungetc só precisa do cabeçalho stdio.h, penso que deveria funcionar em qualquer lugar.

 

Na documentação diz:

If the operation fails, EOF is returned.

 

Mas não entendi o motivo de ungetc falhar naquele caso.

 

3 minutos atrás, devair1010 disse:

e aqui não aparece a imagem nesse link , seria melhor se você postar a imagem mesmo .

Eu postei imagens mesmo, mas pra resumir no compilador online o retorno é 32 (caractere espaço) e no codeblocks é -1 (EOF).

Postado
2 horas atrás, Luccas Fernando disse:

Mas não entendi o motivo de ungetc falhar naquele caso

 

Teste o valor de errno e pode ter alguma informação adicional. ungetc() em stdin é algo esquisito :) 

  • Obrigado 1
  • 3 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!