PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C/C++] Codes mit Fehlern, wo ich den Fehler nicht Finde



Shelter
01.08.2008, 12:52
#include <iostream.h>

int main()
{
int a, b, c;
int counter = 0;
loop: counter ++;

cout << "IP: \n";
cin >> a;
cout << "Port: \n ";
cin >> b;
cout << "Attacks: \n ";
cin >> c;
cout << "Attack: " << counter << "\n";
if (counter < c)
system("PAUSE < nul");
return 0;
}


Was nicht geht:
bei Port dass man keine . zwischen den zahlen machen kann und das der count nicht Funktioniert


f0Gx sagte dass das mit dem Loop ein falscher Programmierstyle ist, aber wie gehts den sonst?

PS. Kaufe mir bald ein Buch :D

Jack-[BIGBOSS]
01.08.2008, 13:00
nutze die macht und du wirst die fehler finden^^

Shelter
01.08.2008, 13:01
]nutze die macht und du wirst die fehler finden^^
sollte das jetzt ein spam werden?

Jack-[BIGBOSS]
01.08.2008, 13:02
nein, nur eine hilfe, oder ein dummer comment, ach du verstehst einfach kein spaß

osiris
01.08.2008, 13:10
Die Variable wo die IP gespeichert wird darf vom Typ kein int sein.
Eine IP der Form *.*.*.* ist ein String.

Shelter
01.08.2008, 13:13
und wie kann ich den string defenieren?

osiris
01.08.2008, 13:17
char ip[16];
fflush(stdin);
gets(ip); //zum Einlesen

noctem
01.08.2008, 13:21
1. Verwarnung für Jack-[BIGBOSS]. Spam wo anders. -.-

2. Und einen String kannst du als char-Array, also ein Feld aus vielen char-Variablen machen.
char einBuchstabe; <- Ein char.
char vieleBuchstaben[10]; Ein String/char-Array mit Platz für 10 Zeichen. Von 0-9. An 10 stehn ein '\0', das den String beendet.

Zum einlesen gibt es mehrere Methoden. Beispielsweise scanf() in C oder cin in C++.

osiris
01.08.2008, 13:26
scanf() würde ich beim Einlesen nicht verwenden da es schon bei einem Space abbricht.

blackberry
01.08.2008, 13:31
char ip[16];
fflush(stdin);
gets(ip); //zum Einlesen
<-- Diesen code NICHT benutzen.

Wir wollen keine Bufferoverflows.

Shelter
01.08.2008, 13:33
so thx

#include <iostream.h>

int main()
{
int b, c;
char ip[16];

int counter = 0;
loop: counter ++;

cout << "IP: \n";
cin >> ip;
cout << "Port: \n ";
cin >> b;
cout << "Attacks: \n ";
cin >> c;
cout << "Attack: " << counter << "\n";
if (counter < c)
system("PAUSE < nul");
return 0;
}

Es geht aber der count noch nicht. Hab schon vieles Probt geht aber iwie nicht :(

l0dsb
01.08.2008, 13:35
Bezüglich der Loop, ich sehe da keinen Sinn drin - deshalb funktioniert dein Count auch nicht korrekt (bzw. wie erwartet).

Für Schleifen gibt es in C/C++ extra Konstrukte, z. B. for-, while- und do-while-Schleifen. Ein kleines Beispiel für eine for-Schleife:


for(int i = 0; i <= 10; i++)
printf("\n %i", i);
Der Code gibt dir die Zahlen direkt aus. Eine for-schleife hat drei Teile:


for(Initialisierung; Bedingung; Zählschritt) // "Schleifenkopf"
{
// Anweisungen, "Schleifenkörper"
}
Initialisierung: Setzt eine Zählvariable auf ihren Anfangswert, kann noch weitere Initialisierungen enthalten (guter Stil: nur Initialisierungen hier rein, die direkt mit der Schleife zu tun haben). Wird hier eine Variable direkt deklariert, ist sie nur im Schleifenkörper gültig, außerhalb nicht mehr (aktuelle Syntax).

Bedingung: Die Bedingung, kann direkt auf die Zählvariable oder andere Variablen bezogen sein, zum Beispiel ginge auch "User[ i] != 0" oder ähnliches - normale Bedingungen eben.

Zählschritt: Hier wird die Zählvariable manipuliert (i++, i--, i += 2, i *= 2), sowie möglicherweise auch andere Variablen (vgl. Initialisierung).

Jack-[BIGBOSS]
01.08.2008, 13:41
lol deswegen hab ich jetz ne verwarnung bekomm^^

Shelter
01.08.2008, 13:43
#include <iostream.h>

for(Initialisierung; Bedingung; Zählschritt)// "Schleifenkopf"
{
// Anweisungen, "Attack"
}


int main()
{
int b, c;
char ip[16];


for(int i = 0; i <= 10; i++)


cout << "IP: \n";
cin >> ip;
cout << "Port: \n ";
cin >> b;
cout << "Attacks: \n ";
cin >> i;
printf("\n %i", i);
system("PAUSE < nul");
return 0;
}

das

for(Initialisierung; Bedingung; Zählschritt)// "Schleifenkopf"
{
// Anweisungen, "Schleifenkörper"
}

Versteh ich iwie nicht :(

osiris
01.08.2008, 13:46
char ip[16];
fflush(stdin);
gets(ip); //zum Einlesen
<-- Diesen code NICHT benutzen.

Wir wollen keine Bufferoverflows.

dann musst eine schleife mit getch() machen, aber bufferoverflows gibts bei scanf() auch.

EDIT: scanf("%15s",ip) sollte keine bufferoverflows geben.

noctem
01.08.2008, 13:50
Nein, das ist keine Funktion die du so schreiben und aufrufen musst.
Das gehört zu C/C++.

for(int i=0; i<=10; i++)
{
//hier der Coder rein, der wiederholt werden soll
}
Erst einen neuen Integer namens i erstellen und mit dem Wert 0 initialisieren. Das Zweite ist die Bedingung. Es soll ausgeführt werden, solange i kleiner oder gleich dem Wert 10 ist. Und als letztes den Schritt. Der Code wird also 11 mal ausgeführt.
for(int o=10;o!=0;o-=2)
{
//ich wiederhole mich
}
Hier wieder Integer o mit Wert 10. Ausführen solange o nicht 0 ist. Den Wert von o in jedem Schleifendurchlauf um 2 erniedrigen.

Rate mal was diese Schleife macht:
for(int i=1;i<=1337;i++)
{
cout << "Kauf dir ein Buch!!!" << endl;
}

Shelter
01.08.2008, 13:57
wenn ichs

#include <iostream.h>

int main()
{
int b, c;
char ip[16];

int counter = 0;
loop: counter ++;

cout << "IP: \n";
scanf(ip);
cout << "Port: \n ";
cin >> b;
cout << "Attacks: \n ";
cin >> c;
cout << "Attack: " << counter << "\n";
if (counter < c)
system("PAUSE < nul");
return 0;
}

mache schließt sich nach der ip eingabe das kästchen

osiris
01.08.2008, 13:59
versuche
scanf("%15s",ip);

noctem
01.08.2008, 14:00
for(int i=1;i<=1337;i++)
{
cout << "Kauf dir ein Buch!!!" << endl;
}

osiris
01.08.2008, 14:01
was sollte das Programm überhaupt bewirken? ^^

Shelter
01.08.2008, 14:06
Naja sollte ein Fake server crasher sein :P , mir is nix anderes eingefallen.
und noctem ich kauf mir ja ein buch :P , aber bis ich das hab stell ich nich viele frage :D

Added after 4 minutes:


#include <iostream.h>

int main()
{
int b, c;
char ip[16];


cout << "IP: \n";
scanf("%15s",ip);
cout << "Port: \n ";
cin >> b;
cout << "Attacks: \n ";
cin >> c;
for(int i=1;i<=c;i++)
{
cout << "Attack" << endl;
}

system("PAUSE < nul");
return 0;
}

So es funtzt zwar jetzt aber ich willja noch dass nach attack eine 1 steht und dass dann immer mehr wird also
attack 1
attack 2
attack 3 usw.

osiris
01.08.2008, 14:13
sowas in der art?


#include <iostream.h>

int main()
{
char ip[16];
int port, attacks, i=0;

cout << "IP: \n";
cin >> ip;
cout << "Port: \n ";
cin >> port;
cout << "Attacks: \n ";
cin >> attacks;

while(i<attacks)
{
cout << "Attack: " << ++i << endl;
}
return 0;
}

Shelter
01.08.2008, 14:24
Ja genau THX :D

So ich möchte jetzt ne Ping abfrage machen ^^


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


int main()
{
char adresse[30];
cout << "Gieb die Adresse ein: \n";
system("ping" << adresse <<);
cin >> adresse;
system("pause > nul");
return 0;
}


Naja es zeigt errors an, das wahrscheinlich an


system("ping" << adresse <<);
liegt, nur ich wüsste nicht wie man das Prob anders lösen könnte

osiris
01.08.2008, 14:28
die eingabe ( cin >> adresse; ) musst du auf jeden fall vor dem ping machen ^^

ich würde das ganze zuerst in einem string zusammenfassen und dann ausführen.

l0dsb
01.08.2008, 14:57
Shelter, der Teil sollte nur eine Verallgemeinerung sein. Eine Schleife, die von 0 bis Count zählt, ginge dann z. B. so:


for(int i = 0; i <= Count; i++)
{
// Anweisungen
}

blackberry
01.08.2008, 15:40
system("ping" << adresse <<);
liegt, nur ich wüsste nicht wie man das Prob anders lösen könnte


#include <cstdlib>
#include <cstring>
#include <cstdio>

int main()
{
char addr[15],
cmd1[20];
printf("IP> ");
fgets(addr, 15, stdin);
addr[strlen(addr) - 1] = 0;
memcpy(&cmd1, "PING ", 5);
memcpy(&cmd1[5], &addr, 15);
system(cmd1);
return 0;
}

Shelter
01.08.2008, 16:07
thx :D ______________

Added after 50 minutes:

Ne frage, wenn ich system("start WoW.exe"); mache dann flattert das kästchen :( und kanns nimma schließen. Wie könnte ich sonst eine datei öffnen?

blackberry
01.08.2008, 19:00
thx :D ______________

Added after 50 minutes:

Ne frage, wenn ich system("start WoW.exe"); mache dann flattert das kästchen :( und kanns nimma schließen. Wie könnte ich sonst eine datei öffnen?

Was meinst du mit öffnen? (bei WoW würde ich Löschen bevorzugen, aber das ist meine persönliche Meinung...)

Wieso nicht einfach
system("WoW.exe");
?

Shelter
05.08.2008, 00:59
Naja es geht schon :P
Ne frage, ich finde da den fehler nicht pls help :(

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



int main()
{
system("title ICQ Hack 2008");
system("color 04");
system(":intro");
system("echo.");
system("echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍ»");
system("ping localhost -n 1 >nul");
system("echo º º");
system("echo º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍ» º");
system("ping localhost -n 1 >nul");
system("echo º º º º");
system("echo º º ÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ º º");
system("ping localhost -n 1 >nul");
system("echo º º ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ º º");
system("ping localhost -n 1 >nul");
system("echo º º ÛÛÛÛ ÛÛ ÛÛ ÛÛ º º");
system("ping localhost -n 1 >nul");
system("echo º º ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ ÛÛÛÛ º º");
system("ping localhost -n 1 >nul");
system("echo º º ÛÛÛÛ ÛÛÛÛÛÛÛÛÛ ÛÛÛÛÛÛÛ ÛÛ º º");
system("ping localhost -n 1 >nul");
system("echo º º º º");
system("ping localhost -n 1 >nul");
system("echo º º ICQ Hack 2008 version 1.3.37 ! º º");
system("echo º º made by Terrommi º º");
system("ping localhost -n 1 >nul");
system("echo º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍͼ º");
system("ping localhost -n 1 >nul");
system("echo º º");
system("echo º Dieses Tool kann das Passwort für jede beliebige ICQ Nummer º");
system("ping localhost -n 1 >nul");
system("echo º herausfinden! Ihr müsst dazu lediglich den ICQ gestartet haben! ");
system("ping localhost -n 1 >nul");
system("echo º º");
system("ping localhost -n 1 >nul");
system("echo º Die zu hackende Nummer muss unten eingetragen werden, dann auf 'ENTER' º");
system("ping localhost -n 1 >nul");
system("echo º drücken! º");
system("ping localhost -n 1 >nul");
system("echo º Viel Spaß mit den Passwörtern! º");
system("ping localhost -n 1 >nul");
system("echo º º");
system("ping localhost -n 1 >nul");
system("echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Íͼ");
system("echo.");
system("set /p input=ICQ UIN: ^> ");
system("");
system("for /l %%i in (1,1,10) do (");
system("(Set /p i=ºº) < NUL");
system("ping localhost -n 1 >nul)");
system("for /l %%i in (1,1,20) do ");
system(" (Set /p i=ºº) < NUL");
system(" ping localhost -n 2 >nul)");
system(" for /l %%i in (1,1,10) do (");
system(" (Set /p i=ºº) < NUL");
system(" ping localhost -n 1 >nul)");
system("echo.&echo.");
system("");
system("ping localhost -n 3 >nul");
system("cls");
system("echo Das Passwort von %input% ist %random%!");
system("PAUSE > nul");
return 0;
}

War ne bath von Nimos :P

osiris
05.08.2008, 01:02
wieso machst da nicht ein cmd skript?
hast eig nur den befehl system() oder hab ich was übersehn?

Nimos
05.08.2008, 01:04
war ja auch früher mal n cmd script (genaugenommen sogar meins^^), aber shelter willl ja ne .exe draus machen, und dabei auf converter verzichten :p