c++ text datei
-
Hallo
Ich arbeite an einen programm dass mit dem system(ipconfig); daten aus gibt und möchte diese in eine txt datei speichern wie geht dass????
danke im vorraus
-
system("ipconfig > ipconfig.txt");Und dann zur laufzeit die datei auslesen.
-
Klpappt Danke
-
Ich bins nochmal es gibt ein Problem ich benutze Vista und da werden ganz viele Datein gespeichert und ich möchte nur die ip auslesen wie geht das ????
-
Dennis13232 schrieb:
(...( und da werden ganz viele Datein gespeichert (...)
Gehts vielleicht genauer?
-
Srry ich will nur die IP auslesen und da werden ja auchdns gate way ect. gespeichert und ich will nur die ip haben (danke für alle die sich bemhen meine schlechten Posts so gut wie möglich zu beantworten)
-
Dennis12323 schrieb:
Srry ich will nur die IP auslesen und da werden ja auchdns gate way ect. gespeichert und ich will nur die ip haben (danke für alle die sich bemhen meine schlechten Posts so gut wie möglich zu beantworten)
Na du liest die Datei ein... zwar habe ich kein Windows aber auch du müsstest da drinnen sowas ähnliches stehen haben:
wlan0 Protokoll:Ethernet Hardware Adresse 00:1f:3c:94:8a:31
inet Adresse:192.168.0.8 Bcast:192.168.0.255 Maske:255.255.255.0
inet6 Adresse: fe80::21f:3cff:fe94:8a31/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:232107 errors:0 dropped:0 overruns:0 frame:0
TX packets:134685 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:336953888 (321.3 MiB) TX bytes:11900660 (11.3 MiB)Dann liest du die Datei Zeile für Zeile und suchst nach dem Ausdruck "inet Adresse:" (kann bei dir auch anders heissen) Wenn du den gefunden hast liest du den nachfolgenden Text bis zum nächsten Whitespace ... und bekommst den String:
192.168.0.8
Schau dir fstream an (datei lesen) und beschäftige dich mit der std::string api
-
lass einfach den system("...") kack und verwende Windows Sockets,
wenn du eh Windows benutzt als OS :phier Beispielcode (ermittelt deine IP-Adresse)
#define WIN32_LEAN_AND_MEAN #include <Windows.h> #include <WinSock2.h> #include <iostream> int main(void) { // Winsock starten WSADATA data; WSAStartup(MAKEWORD(2, 2), &data); // Name ermitteln char name[64]; gethostname(name, 64); std::cout << "Rechnername: " << name << std::endl; // Hostname auflösen hostent *info = gethostbyname(name); in_addr addr; // IP-Adresse ausgeben int n = 0; do { addr.s_addr = *(reinterpret_cast<unsigned long*>(info->h_addr_list[n])); std::cout << "IP-Adresse Nr. " << (n + 1) << ": " << inet_ntoa(addr) << std::endl; ++n; } while (info->h_addr_list[n] != 0); std::cin.get(); // Winsock beenden WSACleanup(); return 0; }
-
DrakoXP schrieb:
lass einfach den system("...") kack und verwende Windows Sockets,
wenn du eh Windows benutzt als OS :phier Beispielcode (ermittelt deine IP-Adresse)
#define WIN32_LEAN_AND_MEAN #include <Windows.h> #include <WinSock2.h> #include <iostream> int main(void) { // Winsock starten WSADATA data; WSAStartup(MAKEWORD(2, 2), &data); // Name ermitteln char name[64]; gethostname(name, 64); // Hostname auflösen hostent *info = gethostbyname(name); in_addr addr; addr.s_addr = *(reinterpret_cast<unsigned long*>(info->h_addr_list[0])); // IP-Adresse ausgeben std::cout << inet_ntoa(addr); std::cin.get(); // Winsock beenden WSACleanup(); return 0; }Das ist nichts windows spezifisches :p
gethostbyname und gethostname gibts überall
-
WSADATA, WSAStartup und WSACleanup aber nicht.
und aus den Posts des Fragestellers meinte ich eine gewisse Unerfahrenheit erkennen zu können
ganz davon abgesehen, dass man unter Linux wesentlich mehr Header inkludieren muss xD
vielleicht sollte ich noch erwähnen, dass mein Programmcode noch mit der ws2_32.lib gelinkt werden muss,
sonst gibs Linker-Error
-
So ermal wieder Danke hab mich mit fstream beschäftigt aber bekomme immernoch nicht hin wie ich eine bestimmte zeile auslese mit getline ??
-
Dennis12323 schrieb:
So ermal wieder Danke hab mich mit fstream beschäftigt aber bekomme immernoch nicht hin wie ich eine bestimmte zeile auslese mit getline ??
Du hast dich also zu wenig mit
std::fstreambeschäftigt.Such mal bei www.cplusplus.com - dort sind die benötigten Klassen und Funktionen gut erklärt, oft sogar mit Codebeispiel.
-
wieso willst du das mit nem fstream aus einer Datei auslesen? xD
hast du dir meinen Code überhaupt mal angeschaut?
inet_ntoa liefert dir die IP-Adresse in einem schönen C-String im Format "xxx.xxx.xxx.xxx"
und wenn du's als C++-String brauchst machste einfachstd::string strAddr(inet_ntoa(addr));und falls dich das mit dem info->h_addr_list usw. verwirrt:
h_addr_list ist eine Liste aller IP-Adressen deines Rechners
(dein Rechner kann durchaus mehrere IP-Adressen haben).der letzte Eintrag dieser Liste hat den Wert 0, deshalb wird bis dahin alles hintereinander ausgegeben
und dann beendet.MfG Drako
-
Ja hab mir deinen Code angeluckt aber hab ihn nicht recht verstanden und deswegen wollt ich ihn nicht benutzen
-
ICh glaub das das nichts mehr bringen wird und ich mich erstnochmal weiter mit dehm Thema beschäftigen sollte danke trozdem
-
Du hättest auch nachfragen können, wenn du etwas nicht verstehst...