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

String


Léo Unicap

Pergunta

Oi galera.

É o seguinte. Fiz um código usando Strings(ou pelomenos tentando usar).

Escrevi e quando compilei ele deu 2 erros.

Um na linha 14 e outro na 44.

14 = Error 1 error C2660: 'system' : function does not take 2 arguments

44 = Error 2 error C2664: 'pingEspecifico' : cannot convert parameter 1 from 'char [100]' to 'char'

Uso o Visual Studio 2008 pra programar em C.

Onde estou errando galera. É possível usar STRINGS em C ou so se pod trabalhar com CHAR???

Segue o código.

SIIIIM, o código é basicamente para pingar um edereço predefinido ou definido pelo usuario e para mostrar o ip simple e geral da maquina, isso via procedimentos.



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


void ping(){
system("ping www.google.com");
}

void pingEspecifico(char IP){
system("ping %s",IP);
}

void mostrarIP(){
system("ipconfig");
}

void mostrarIPDetalhado(){
system("ipconfig \all");
}


int main()
{

char IP[100];
int entrada, num;

do{
//Entrada de Dados
printf("\n\nOlah, digite o que deseja fazer de acordo com os numeros: ");
printf("\n1-Ping(Testar Conexao).\n2-Ping Especifico(Testar Conexão com um Site ou IP Especifico).");
printf("\n3-Mostrar IPs.\n4-Mostrar IPs Detalhados(IPs, Endereços MAC, etc).");
scanf("%i",&entrada);fflush(stdin);

if(entrada==1)
ping();
else if(entrada==2){
printf("Digite o endereco IP ou WEB que deseja \"pingar\": ");
scanf("%s",&IP); fflush(stdin);
pingEspecifico(IP);
}
else if(entrada==3)
mostrarIP();
else if(entrada==4)
mostrarIPDetalhado();
printf("\n\n\nDeseja executar o programa novamente?\n1-SIM\n2-não\nEscolha: ");
scanf("%i",&num);fflush(stdin);
}while(num==1);
getchar();

}

[/codebox]

VLW

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

A raiz do problema dos dois erros está em system("ping %s",IP);. Isso que você quer fazer simplesmente não pode ser feito. Sempre se guie pelo protótipo da função. Está no help. Esta função admite apenas um argumento, mas está recebendo dois. Ela não age como printf(). Se quer que a este argumento seja incorporado um argumento que será passado na linha de comando, monte a string da linha de comando antes de executar system().

Link para o comentário
Compartilhar em outros sites

  • 0

Só pra te dar mais uma ajuda como o maligno disse a sintaxe como tu declaro o system esta errado.

Se não me engano o protótico dela

é assim system (const char*);

A sua função ta assim

void pingEspecifico(char IP){
system("ping %s",IP);
}
os dois erros que está dando são pela sintaxe do system q está errada e também pelo método q tu chama essa função
pingEspecifico(IP);
sendo que IP é uma matriz de caracteres e a função tu declaro para receber apenas um caractere a forma certa seria
void pingEspecifico(char IP[])
ou
void pingEspecifico(char* IP)
e para resolver o teu problema do system use sprintf e a sua função ficaria assim então
void pingEspecifico(char* IP){
char monta[50];
sprintf(monta,"ping %s",IP);
system(monta);
}
Tem ainda um erro no teu scanf
scanf("%s",&IP);

IP é uma matriz de caracteres então n precisa usar o & comercial para pegar o endereço.

É possível usar STRINGS em C ou so se pod trabalhar com CHAR???

Em c não existe o tipo string para declarar dados como string.

Em c uma string é uma matriz de caracters.

espero te ajuda

Té mais.

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