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

Ajuda script c++ Outro Problema!


Túlio Cezar

Pergunta

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.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
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;
}

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...