C++ in Win 8.1

abababab

Grünschnabel
Es hat ein Fenster bei deinem Code kommt nur beliebige taste drücken,und ich verstehe auch nicht was getchar(); soll die Funktion hab ich ja nicht.Bei meinem ist auch nur ein Fenster wenn ich laufen lasse sturzt er ab.Ich habe eine exe Datei.Router hat sicher die Adresse in cmd geht das anpingen aber nicht in einem Programm.
 

abababab

Grünschnabel
Eine andere Lösung wie ich herausfinde ob man mit dem Router verbunden ist oder nicht wäre mir auch recht, aber am liebsten ist mir ein kurze und einfache Variante.
 

cwriter

Erfahrenes Mitglied
Es hat ein Fenster bei deinem Code kommt nur beliebige taste drücken,und ich verstehe auch nicht was getchar(); soll die Funktion hab ich ja nicht.
getchar() ist mehr oder weniger dasselbe wie system("PAUSE") ohne Ausgabe, erfordert aber die ENTER Taste (und nicht eine beliebige).
Bei meinem ist auch nur ein Fenster wenn ich laufen lasse sturzt er ab
Es stürzt ab?
beim einmal beenden kommt es etwa 20 mal bei mir vorher kommt aber nichts musste mein abwürgen weil er so gesponnen hat
Ja was denn nun?

C++:
int main(int argc, char* argv[])
{
    if (system("ping -n 1 192.168.1.0") != 0)
        std::cout << "Verbunden";
    else
        std::cout << "Nicht verbunden";

    system("PAUSE");
    return 0;
}
gibt bei mir (win10, VS2016) folgendes aus:
Code:
Pinging 192.168.1.0 with 32 bytes of data:
Request timed out.

Ping statistics for 192.168.1.0:
    Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
VerbundenPress any key to continue . . .

Und für 192.168.1.1:
Code:
Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=2ms TTL=63

Ping statistics for 192.168.1.1:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 2ms, Average = 2ms
Nicht verbundenPress any key to continue . . .

Heisst: system("ping...") == 0 <-> Verbunden
system("ping...") != 0 <-> Nicht verbunden.
(In deinem Code ist es gerade verkehrt herum).

Ich habe eine exe Datei.
Wunderbar.
Router hat sicher die Adresse in cmd geht das anpingen aber nicht in einem Programm.
Cool.

Lass dein Programm mal ~1 Minute laufen (oder solange, bis ein Output da ist) und kopiere dann die Ausgabe hier ins Forum.
Damit würden wir dir helfen können - aber wenn du uns das nicht geben willst...

Gruss
cwriter
 

cwriter

Erfahrenes Mitglied
Eine andere Lösung wie ich herausfinde ob man mit dem Router verbunden ist oder nicht wäre mir auch recht, aber am liebsten ist mir ein kurze und einfache Variante.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa384702(v=vs.85).aspx

C:
    DWORD flags = 0;
    BOOL conn = InternetGetConnectedState(&flags, 0);
    if (conn) std::cout << "Connected to internet";
    else std::cout << "No connection";
Kurz genug?

Erfordert folgende Includes:
C:
#include <Windows.h>
#include <Wininet.h>
Zudem muss folgende Bibliothek verlinkt werden: "Wininet.lib".
Wie man verlinkt? IDE-abhängig, ein bisschen Googlen.
Normalerweise für Code::Blocks so wie hier beschrieben: http://stackoverflow.com/a/24769374

Gruss
cwriter