Túlio Cezar Postado Outubro 23, 2011 Denunciar Share Postado Outubro 23, 2011 Com ajuda do nosso amigo mJi, concegui montar com sucesso esse código:#include <stdio.h> #include <windows.h> int main() { char p[30] = "Ping"; char ip[30]; char resultado[100]; printf (" Digite um Ip: "); scanf ("%s",&ip); sprintf( resultado, "%s %s", p, ip); system (resultado); system ("pause"); return 1; }O problema e que quando digito 192.168.1.1 -t ele não imprime o -t por causa do espaço.queria saber se existe alguma forma, para ele aceitar o espaço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 mJi Postado Outubro 23, 2011 Denunciar Share Postado Outubro 23, 2011 O problema e que quando digito 192.168.1.1 -t ele não imprime o -t por causa do espaço.queria saber se existe alguma forma, para ele aceitar o espaço.Quem bom que está progredindo...Só uma coisinha: Ao se ler uma string com o scanf, não se deve colocar o & ('E' comercial) antes do nome do vetor de char.Sobre os espaços: o que ocorre é que o scanf considera o espaço como o fim da string, e ignora qualquer coisa que vier depois dele.O que você pode fazer é utilizar uma expressão regular no scanf, para ele aceitar espaços:scanf("%[^\n]", ip); Esta expressão regular faz com que o scanf leia e guarde no vetor de char todo e qualquer caracter digitado antes de um '\n' (quebra de linha, ou seja, até o usuário digitar Enter). Outra maneira é utilizar o fgets: fgets(ip, 20, stdin); Porém, o fgets não tira o '\n' do final da string. Tem de se fazer isto você mesmo. Ficando assim: #include <stdio.h> #include <windows.h> int main(){ char p[30] = "Ping"; char ip[30]; char resultado[100]; printf (" Digite um Ip: "); scanf ("%[^\n]",ip); sprintf( resultado, "%s %s", p, ip); system (resultado); system ("pause"); return 1; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Túlio Cezar
Com ajuda do nosso amigo mJi, concegui montar com sucesso esse código:
O problema e que quando digito 192.168.1.1 -t ele não imprime o -t por causa do espaço.
queria saber se existe alguma forma, para ele aceitar o espaço.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.