# c++ ping tool erstellen :(



## fIrEE17 (5. Dezember 2011)

hallo,

ich soll für die schule ein kleines programm erstellen das eine oder mehrere ips anpingt. Bis jetzt kann ich nicht mal die ganzen grundlagen (würde ich mal so sagen) 

Hier mein code:

#include <iostream>
#include <windows.h>

using namespace std;
char a ; // ich weiß nicht ob char überhaupt richtig ist 


int main(int argc, char *argv[])
{
cin >> a ;
system("ping ");    // idee = system("ping "a" "); 

system("pause"); 
}


1. Die eingabe "a" soll nun die eingegebene ip sein, die angepingt werden soll
2. Wenn die ip nicht erreichbar ist soll eine fehlermeldung ausgegeben werden.


ich hoffe ihr könnt mir weiterhelfen


----------



## AMD (5. Dezember 2011)

Also der Datentyp char kann schonmal nicht funktionieren, da du dort nur 1 Zeichen drin speicherst! Der bessere Datentyp ist hier wohl string! Dazu benötigst du oben als Include: #include <string>

System("ping") muss wie folgt aussehen:

```
system(("ping " + a).c_str());
```
Sollte dann eigentlich mit großer Wahrscheinlichkeit klappen. Falls nicht sag nochmal bescheid.


----------



## fIrEE17 (5. Dezember 2011)

Wuh es klappt 

was bewirkt das "c_str"?

Wie gesagt ich bin halt wirklich am anfang und im unterricht versteh ich nicht wirklich viel...


vielen dank.


----------



## AMD (5. Dezember 2011)

Ich versuchs mal halbwegs einfach zu erklären: Der Befehl könnte mit dem Datentyp String an sich nichts anfangen, daher wird es mit c_str auf ein Char Array konvertiert und ein pointer mit dem Char Array wird zurück gegeben.
Der String wird quasi lesbar für den Befehl gemacht.


----------



## Zappzarrap (5. Dezember 2011)

In C werden Zeichenketten als Char Arrays mit 0 - Terminierung gespeichert
also etwa so:
[H,A,L,L,O,\0]
C++ macht das intern (als char * soweit ich weiss) ähnlich allerdings sind 
Strings hier Objekte (!) sprich du kannst Methoden wie meinString.find(whatever) 
aufrufen, das geht auf einem Char Array nicht. Die meinString.c_str() 
macht nun nichts anderes als das String Objekt aus C++ in ein Array zu
konvertieren, so das du wieder die "alte" Darstellung bekommst. 

Die String Bibliothek im Detail:

string - C++ Reference

Eine C++ Referenz mit der ich auch immer arbeite, wenns mal um C++ geht:

cplusplus.com - The C++ Resources Network

€dit:
Wenn du C++ lernen willst (was ich für den Anfang etwas "über" fände...)
kann ich dir dieses Buch empfehlen:
Einstieg in C++: 4. Auflage (Galileo Computing): Amazon.de: Arnold Willemer: Bücher
Da geht´s relativ sachte los, inklusive den absoluten Basics wie Kontrollstrukturen
und Schleifen, also wirklich für Programmier Neulinge geeignet, weil eben kein
Vorwissen erforderlich ist.


----------



## fIrEE17 (6. Dezember 2011)

Vielen dank das ihr mir das nochmal erklärt habt  

ich glaube ich werde mir das buch einfach mal bestellen, da ich c++ in der schule lerne und das sehr gerne wirklich verstehen würde. 
Mein Lehrer erklärt das ganze leider fast gar nicht


----------



## Zappzarrap (6. Dezember 2011)

Dann wünsche ich dir mal viel Spaß damit  Wenn du Fragen hast, stell
die gerne, auch per PN. Ich weiss aus eignere Erfahrung das da am Anfang
viel Frustpotential drinsteckt. Einfach nicht aufgeben...Wenn du dann bei
pointern und referenzen angelangt bist, lesen wir uns sicher nochmal,der
geneigte C/C++ Programmierer wird mir zustimmen


----------

