Problem mit einem String
-
moin ich hab ein Problem mit nem String.
Immer wenn ich versuche so auf den Server zu Connecten geht der Client einfach zu.
string ip; printf("IP eingeben: "); scanf ("%d",&ip); memset(&addr,0,sizeof(SOCKADDR_IN)); addr.sin_family=AF_INET; addr.sin_port=htons(12345); addr.sin_addr.s_addr=inet_addr("%d"),ip;
Aber wenn ich z.b. in diese Zeile die IP eingebe.
addr.sin_addr.s_addr=inet_addr("127.0.0.1"),ip;
dann geht es.
Aber wenn ich es mit einer Eingabe machen will dann schließt sich der Client einfach .....
-
roflcopter incoming schrieb:
moin ich hab ein Problem mit nem String.
Immer wenn ich versuche so auf den Server zu Connecten geht der Client einfach zu.
string ip; printf("IP eingeben: "); scanf ("%d",&ip); memset(&addr,0,sizeof(SOCKADDR_IN)); addr.sin_family=AF_INET; addr.sin_port=htons(12345); addr.sin_addr.s_addr=inet_addr("%d"),ip;
addr.sin_addr.s_addr=inet_addr("%d"),ip; ??? erst lesen, dann verstehen
hier handelt sich um keine printf Funktion. Die Konstruktion inet_addr("%d"),ip; sagt nicht, ersetze %d durch den Inhalt von ip. Wie gesagt, wo ist das (s)printf?
Bei inet_addr("127.0.0.1"),ip; geht natürlich, da "127.0.0.1" eine gültige IP Adresse ist.
Außerdem ist deine IP Eingabe falsch. scanf("%d") liest eine Zahl, keine Zeichenkette.
-
Wie kann ich den eine Zeichenkette einlesen ?
-
Ich habs geschafft
char ip[20]; printf("IP eingeben: "); gets (ip); memset(&addr,0,sizeof(SOCKADDR_IN)); addr.sin_family=AF_INET; addr.sin_port=htons(12345); addr.sin_addr.s_addr=inet_addr(ip);
-
gets sollte man nie verwenden, sondern man: fgets(3)