Wo ist nur der Fehler? -.-
-
Guten Morgen ^^
Problem ist folgendes: ich soll für die Arbeit nen Programm schreiben, das mir - nach angabe der ersten 3 teile einer ip - eine tabelle generiert. denke der code ist (ja ich weiß, ganz gewiss nicht optimiert ^^ aber übersichtlich *G*) leicht zu durchschauen.
Problem: irgendwo ist ein fehler. Ich arbeite mit Dev C++. Kompilieren funktioniert, Ausführen ebenso. Er legt die Tabelle auch korrekt an... nur beendet er nach Ausführung immer mit einer Fehlermeldung (iplister.exe hat ein problem festgestellt und muss beendet werden). Ich kann mir einfach nicht erklären wie das zustande kommt, vielleicht hat jemand von euch eine Idee?Code:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>using namespace std;
int main (void)
{string szahl1, szahl2, szahl3;
int icount = 1;
FILE *iplist ;printf ("IP-Lister\n");
printf ("Bitte sie den ersten Teil der IP ein: ");
scanf ("%s", &szahl1);
printf ("Bitte sie den zweiten Teil der IP ein: ");
scanf ("%s", &szahl2);
printf ("Bitte sie den dritten Teil der IP ein: ");
scanf ("%s", &szahl3);iplist = fopen("iplist.txt", "w+");
do
{
fprintf (iplist, "%s", &szahl1);
fprintf (iplist, ".");
fprintf (iplist, "%s", &szahl2);
fprintf (iplist, ".");
fprintf (iplist, "%s", &szahl3);
fprintf (iplist, ".");
fprintf (iplist, "%i", icount);
fprintf (iplist, "\t");
fprintf (iplist, "PC-");
fprintf (iplist, "%s", &szahl1);
fprintf (iplist, "-");
fprintf (iplist, "%s", &szahl2);
fprintf (iplist, "-");
fprintf (iplist, "%s", &szahl3);
fprintf (iplist, "-");
fprintf (iplist, "%i", icount);
fprintf (iplist, "\n");
icount++;
}
while (icount <= 254) ;fclose(iplist);
return 0;
}
-
Hallo
Ich weiß nicht, wo dein Fehler ist, aber du solltest dich für C++ oder C entscheiden und keinen komischen Mix machen. Wenn du strings benutzt, dann gib sie doch mittels cout aus und lies sie mittels cin ein. Außerdem hast du einen Header doppelt eingebunden.
chrische
-
zu meiner verteidigung muss ich sagen, dass wir in der schule erst 1 stunde praktisch c hatten *g* find cin und cout lesen sich irgendwie ned so gut und wüsste auch nicht wie ich damit in die textdatei schreib weil der befehl sich ja eigentlich auf die konsole bezieht oder? mir fehlt halt kenntnis über die meißten befehle. aber daher lern ichs ja auch noch, nur hilft mir das in meinem jetzigen problem nicht weiter .... glaub ich
-
soso... liest sich nicht so schön. scanf auf nen string liest sich auch nicht sehr schön. Das funktioniert nämlich insbesondere nicht.
#include <iostream> #include <fstream> // für File-I/O using namespace std; int main () { int zahl1, zahl2, zahl3; // lesen wir die doch gleich als int ein. cout << "IP-Lister\n"; cout << "Bitte sie den ersten Teil der IP ein: "; cin >> zahl1; cout << "Bitte sie den zweiten Teil der IP ein: "; cin >> zahl2; cout << "Bitte sie den dritten Teil der IP ein:"; cin >> zahl3; ofstream iplist("iplist.txt"); for(int i=1; i<255; ++i) { iplist << zahl1 << "." << zahl2 << "." << zahl3 << "." << i << "\t"; iplist << "PC-" << zahl1 << "-" zahl2 << "-" << zahl3 << "-" << i << "\n"; } }Variablen erst anlegen wenn Du sie wirklich brauchst. Und streams verwenden. Besonders wenn Du Sachen wie strings einlesen willst. Die C-Bibliotheksfunktionen können mit sowas nicht vernünftig umgehen.
-
funktioniert, ich danke vielmals. zwar einmal in line 22 nen "<<" vor zahl 2 vergessen aber das sind wohl flüchtigkeitsfehler ^^
funktioniert hat das program ja, nur es kam zum schluss ne fehlermeldung. warum ich die als string eingelesen hab weiß ich och ned -.- eigentlich überflüssig gewesen ja. wenn ich mir den code so anschau muss ich wohl noch einiges lernen *g*