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

(Resolvido) Leitura no Terminal


DiegoAugusto

Pergunta

Galera, tem como a função scanf() ler uma sequência de char no terminal excluindo o " "(espaço em branco).

Exemplo:

Lendo no terminal:

# * # *
Queria saber uma forma de ler esses valores usando:
scanf("%c", &variavel1);
scanf("%c", &variavel2);
scanf("%c", &variavel3);
scanf("%c", &variavel4);
Mas sem atribuir as variaveis o valor " "(espaço em branco). Sendo assim,
variavel1 = #
variavel2 = *
variavel3 = #
variavel4 = *

[]'s

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Após cada caractere há um espaço, é isso? Se sim, você pode usar:

scanf("%c ", &variavel);
Do contrário, acho que não é possível só com um scanf. A forma mais fácil em que consigo pensar seria fazer a leitura sequencial dos caracteres e ignorar os espaços em branco. Algo como:
char str[200];
char *p = str;
char ch;
while (ch = getchar(), ch != '\n' && ch != EOF)
{
    if (ch != ' ')
    {
        *p++ = ch;
    }
}
*p = 0;
puts(str);

Link para o comentário
Compartilhar em outros sites

  • 0

Eu consegui da seguinte forma:

Tendo como entrada:

* * +
Usei:
char c1, c2, c3

scanf(" %c");
scanf(" %c");
scanf(" %c");
Então atribui corretamente:
c1 = *
c2 = *
c3 = +

Facilita pra tipos de problemas que recebem uma linha com vários caracteres, não atribuindo o ' '(espaço em branco) a variável, pois não interessa.

Muito obrigado pela sua atenção Pedro.

Link para o comentário
Compartilhar em outros sites

  • 0

Você está se referindo a algum problema específico do SPOJ? Normalmente eu acho mais fácil simplesmente ler a linha inteira e depois ir processando aos poucos. Quando necessário (raramente), uso a dica de colocar o espaço no scanf pra ignorar o caractere.

Obs.:

Marquei o tópico como Resolvido.

Link para o comentário
Compartilhar em outros sites

  • 0

É porque trabalhar com String em C é meio complicado. O problema que eu resolvi recebia números e caracteres em uma mesma linha, e o scanf() estava associando a umas das variáveis do problema o ' '(espaço em branco), o que não era nada interessante. De qualquer forma obrigado pela ajuda, consegui resolver o problema da forma descrita acima.

Obrigado a todos.

[]'s

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...