Ping mit BEEP in C++

  • Themenstarter Themenstarter Easyrider
  • Beginndatum Beginndatum
E

Easyrider

Guest
Ich versuche gerade ein kleines Programm zu schreiben das einen Ping solange ausführt bis der rechner erreichbar ist und dann einen beep(speaker) macht.

Es scheitert an meinen geringe C++ Kenntnissen!
Vielleicht kann mir einer von euch Sagen wie ich aus einem System() aufruf einen Wert zurück bekomme den ich dann auswerten kann

Ausserdem Funktioniert das mit dem System ("blabla"variable"blabla") nicht, weis einer welcher wie sowas geht?

Hier mein code:


Code:
#include <cstdio>
#include <iostream>
#include <cstdlib>

using namespace std;

main(int nNumberOfArgs, char* nzArgs)
{
char ip;
cout << "Bitte geben Sie die IP ein./n";
cout << "Sie werden mit einem Beep informiert wenn die IP erreichbar ist./n";
cin >> ip;

system ("ping "; ip;  "-t"); <--:-(
blabla if (;x=y;beep)        <--:-(
};
system ("pause");
return 0;
};
 
Erstmal zu deinem Problem des Aufrufes:
Vorab einmal: char ist ein Datentyp der nur einen Buchstabe aufnehmen kann. Für Zeichenketten nimmt man char[x], char* oder string, also so z.b.:
Code:
 char* ip = new char[255]; // neuer charzeiger ip

Die Eingabe mit cin:
Code:
cout << "enter ip: ";
cin >> ip;

Zum Aufruf von system formatierst du dir am besten einen neuen Charzeiger und rufst dann system mit diesem als Parameter auf:
Code:
char* sysstring = new char[255]; // neuer charzeiger sysstring
sprintf(sysstring, "ping %s -t", ip); // In systring dein aufruf zu ping.exe speichern
system(sysstring);

Wenn du die Ausgabe von ping.exe abfangen willst, kannst du dir die Ausgabe zum Beispiel in eine Datei schreiben lasssen.

Beispiel:
Code:
 ping 192.168.0.1 -t >>C:\file

Die Datei öffnest du dann per ifstream, speicherst den inhalt in ein string objekt und liest alles bequem per find() aus.

Am Ende nicht vergessen die 2 Zeiger zu löschen
Code:
delete ip;
delete sysstring;
(falls es nicht geht, probier mal delete [])


Besser wäre es aber eine Klasse wie CPing zu benutzten.
 
Code:
#include <cstdio>
#include <iostream>
#include <cstdlib>

using namespace std;

main(int nNumberOfArgs, char* nzArgs)
{
char ip; // ein char ist ein einzelnes zeichen eine ip besteht nicht aus nur einem zeichen
cout << "Bitte geben Sie die IP ein./n";
cout << "Sie werden mit einem Beep informiert wenn die IP erreichbar ist./n";
cin >> ip;

system ("ping "; ip;  "-t"); <--:-(
blabla if (;x=y;beep)        <--:-(  //das hier versteh ich nicht wirklich was soll das sein
}; //was soll das hier tun?
system ("pause");
return 0;
};//und wofür steht jetzt diese } und das ;? das hat hier nichts zu suchen
[/quote]

Also mit System zum pingen kommst du nicht weiter du musst hier shcon aus dem programm selbst heraus pingen. wie du das machst Googles du am besten kann das jetzt nicht aus dem kopf

und Ps: wenn du schon code postest sollte der nicht so wirr sein wie deiner(siehe comments)
 
Der Vollständigkeitshalber: Das mit dem "beep" auf PC Speaker bekommst du imho so hin:

Code:
cout << "\a";
 
Zurück
Oben