C++ program find 7 fejl...

Tags:    c++

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

int main()
{
char geta = get_elevliste;
char get_karakter;

cout << "Du hedder Mikkel wilkinson og det et er dit job at hacke din skoles server";
cout << "fordi du skal forhøje dine karakterer," << endl;
SLEEP(1000);
cout << "ellers vil du ikke kunne komme ind og få dit drømmejob" << endl;
SLEEP(1000);
cout << "CONNECTION TO SERVER ACCESSED!";
cin << get_karakter;
if {get_karakter == geta}
{
cout << "Andre Jensen = A+" << endl;
cout << "Bentley Bentsen = B+" << endl;
cout << "paterson Oakley = B-" << endl;
cout << "Audrey Opaley = A-" << endl;
cout << "Senarior Deadi = A+" << endl;
cout << "Mikkel Wilkinson = B+" << endl;
cout << "Claes Nilsson = A+" << endl;
cout << "Troels Gothic = A-" << endl;
cout << "Peter Larsen = B+" << endl;
}
else
{
cout << "wrong command" << endl;
}
}
system("PAUSE");
return 0;
}

den siger der er en del fejl, men jeg kan ikke finde dem (dette script er også langt fra færdigt, men jeg ville også gerne have en til at se om han/hun kunne hjælpe mig med lidt WHILE, så hvis det er forkert så bliver den ved med at skrive "wrong command" også lave et cin felt igen.
----------
stress is when you wake up screaming and u realise u havent fallen asleep yet



23 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
tak for alle de dejlige råd jeg ville gerne give jer begge 20 point, og jeg ville spørge om jer samtidig kan få en af jer til at putte min kode i en while så at denne her kode også virker ved den næste "command" man skriver

kode:

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

void main()
{

string commands;
char getcommands[] = "get_commands";
char getelev[] = "get_elevliste";
char getinfo[] = "get_info_1649";
char change[] = "change_1649_11";
char exit[] = "exit";

cout << "Du hedder Mikkel wilkinson og det et er dit job at hacke din skoles server" << endl;
cout << "fordi du skal forhoje dine karakterer til 11, ellers vil du ikke kunne komme ind";
cout << "og faa dit drommejob\\n" << endl;
cout << "CONNECTION TO SERVER ACCESSED\\n" << endl;
cout << "start med at skrive 'get_commands' for at finde ud af hvordan du skal hacke dig ind paa skolens server\\n" << endl;
cin >> commands;
if (commands == getcommands)
{
cout << "\\n exit = 'close connection'" << endl;
cout << "" << endl;
cout << "saa skal du aendre din karakter ved at skrive\\n 'change_(dit nummmer)_(den nye karakter (det er den du ser under info))'" << endl;
cout << "nu skal du saa komme ud af serveren ved at skrive\\n 'exit'\\n" << endl;
cout << "START:\\n" << endl;
cin >> commands;
}
else if (commands == getelev)
{
cout << "\\nAndre Jensen = 1367" << endl;
cout << "Audrey Opaley = 1532" << endl;
cout << "Bentley Bentsen = 1945" << endl;
cout << "Claes Nilsson = 1209" << endl;
cout << "Mikkel Wilkinson = 1649" << endl;
cout << "paterson Oakley = 1487" << endl;
cout << "Peter Larsen = 1734" << endl;
cout << "Senarior Deadi = 1003" << endl;
cout << "Troels Gothic = 1867\\n" << endl;
cin >> commands;
}
else if (commands == getinfo)
{
cout << "\\nnavn: Mikkel Wilkinson" << endl;
cout << "alder: 15" << endl;
cout << "karakter: 8" << endl;
cout << "behovende karakter: 11\\n" << endl;
cin >> commands;
}
else if (commands == change)
{
cout << "\\nMikkel Wilkinson's karakter er aendret til 11\\n" << endl;
cin >> commands;
}
else if (commands == exit)
{
cout << "\\nCONNECTION CLOSED\\n" << endl;
cout << "Tilykke! Du har vundet første mission!\\n" << endl;
system("PAUSE");
}
else
{
cout << "wrong command" << endl;
cin >> commands;
}
system("PAUSE");
}



hmm nåhr men det var kun Janus der fik bentel branders havde ikke lagt svar ind...



jeg har fået at vide at void er bedre end int i mit tilfælde



tak for alle de dejlige råd jeg ville gerne give jer begge 20 point, og jeg ville spørge om jer samtidig kan få en af jer til at putte min kode i en while så at denne her kode også virker ved den næste "command" man skriver

...



Måske noget i stil med:

Fold kodeboks ind/udKode 




jeg har fået at vide at void er bedre end int i mit tilfælde


void er aldrig bedre, det har aldrig været lovligt i noget C eller C++ program.

main returnerer en int. Hvis du laver et program der ikke returnerer en int har dit program "undefined behaviour", programmer der har det må gøre ALT inklusive at parkere læse/skrive hovedet på din harddisk 1 cm under overfladen på skiven!



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

using namespace std;

int main()
{
bool vundet = false;
int alder;
string efternavn;
string fornavn;
string commands;
char getcommands[] = "get_commands";
char getelev[] = "get_elevliste";
char getinfo[] = "get_info_1649";
char change[] = "change_1649_11";
char exit[] = "exit";
cout << "indtast dit fornavn: ";
cin >> fornavn;
cout << "\\nindtast dit efternavn: ";
cin >> efternavn;
cout << "\\nindtast din alder: ";
cin >> alder;
cout << "\\nDu hedder " << fornavn << " " << efternavn << " og det et er dit job at hacke din skoles server" << endl;
cout << "fordi du skal forhoje dine karakterer, ellers vil du ikke kunne komme ind";
cout << "og faa dit drommejob\\n" << endl;
cout << "CONNECTION TO SERVER ACCESSED\\n" << endl;
cout << "start med at skrive get_commands for at finde ud af hvordan du skal hacke dig\\nind paa skolens server" << endl;
do
{
cout << "\\n";
cin >> commands;

if (commands == getcommands)
{
cout << "\\n exit = close connection" << endl;
cout << "change_(dit nummer)_(behovende karakter) = aendre din karakter" << endl;
cout << "get_info_(dit nummer) = ' faa din behovende karakter og\\nanden information om din mand\\nbemaerk at dette kun virker paa dig selv" << endl;
cout << "get_elevliste = faa dit og alle de andres elev numre udgivet" << endl;
}
else if (commands == getelev)
{
cout << "\\nAndre Jensen = 1367" << endl;
cout << "Audrey Opaley = 1532" << endl;
cout << "Bentley Bentsen = 1945" << endl;
cout << "Claes Nilsson = 1209" << endl;
cout << fornavn << " " << efternavn << " = 1649" << endl;
cout << "paterson Oakley = 1487" << endl;
cout << "Peter Larsen = 1734" << endl;
cout << "Senarior Deadi = 1003" << endl;
cout << "Troels Gothic = 1867\\n" << endl;
}
else if (commands == getinfo)
{
cout << "\\n navn:" << fornavn << " " << efternavn << endl;
cout << "alder: " << alder << endl;
cout << "karakter: 8" << endl;
cout << "behovende karakter: 11\\n" << endl;
}
else if (commands == change)
{
cout << "\\n" << fornavn << " " << efternavn << "'s karakter er aendret til 11\\n" << endl;
bool vundet = true;
}
else if (commands == exit)
{
if (vundet == true)
{
cout << "\\nCONNECTION CLOSED\\n" << endl;
cout << "Tilykke! Du har vundet forste mission!\\n" << endl;
system("PAUSE");
}
else
{
cout << "du skal hacke din karakter forst!";
}
}
else
{
cout << "wrong command" << endl;
}
}
while(vundet == false);
system("PAUSE");
}


hvorfor bliver den ved med at sige "du skal hacke din karakter forst"? kan man ikke ændre en bool midt i et program? det er meningen at når man han aendret sin karakter så skulle man når man har skrevet exit få

cout << "\\nCONNECTION CLOSED\\n" << endl;
cout << "Tilykke! Du har vundet forste mission!\\n" << endl;

men den bliver ved med at skrive det andet at man skal hacke sin karakter forst hjaelp plz



Umidelbart ser det ud til at problemet er at du har TO variabler der hedder vundet.

Den første i toppen som også er den der testes på i while(... ) og en i:

.else if (commands == change)
{
cout << "\\n" << fornavn << " " << efternavn << "'s karakter er aendret til 11\\n" << endl;
bool vundet = true;
}

Prøv at slette bool foran den sidste, så sætter du den rigtige vundet.



Hej Bertel Brander !!!
Jeg har i længere tid arbejdet med hardware programmering, og har aldrig før hørt om at en bruger kan sætte læse hoved på ens harddisk, 1 cm under overfladen på skiven!.

Jeg vil være meget intreseret i hvilken kommando i C/C++/ASM man gør det med ???????? (Gerne dos API / Windows API / Linux API eller andre metoder)

Mig bekendt gør det at man bruger int void blot at der retuneres en værdi i ax- registeret. Men er meget åben for hvis dette ikke er rigtig....

Et lille hint til hvordan man kan teste små asm programmer :
1. Start en dospromt
2. skriv "debug"
3. Indsæt koden og kør den

Sådan som jeg har forstået "void", betyder dette tom. Altså at en metode ikke har noget output. Men det må være mig der har misforstået dette.

Kort og godt kan dette siges således :
Hvis en metode har behov for at aflevere en resultat kan dette gøres vha. en return. For at fortælle kompileren hvor meget plads der skal reseveres skal man fortælle hvilken type man vil aflevere.

int add(int a,int b)
{
return a+b;
}

void main
{
cout<<"\\n10+2 = "<<add(10,2)<<"\\n";
}

Med Venlig Hilsen
Janus S. Andersen

"
main returnerer en int. Hvis du laver et program der ikke returnerer en int har dit program "undefined behaviour", programmer der har det må gøre ALT inklusive at parkere læse/skrive hovedet på din harddisk 1 cm under overfladen på skiven!

jeg har fået at vide at void er bedre end int i mit tilfælde

void er aldrig bedre, det har aldrig været lovligt i noget C eller C++ program.

main returnerer en int. Hvis du laver et program der ikke returnerer en int har dit program "undefined behaviour", programmer der har det må gøre ALT inklusive at parkere læse/skrive hovedet på din harddisk 1 cm under overfladen på skiven!

"




Sorry
Mig bekendt gør det at man bruger int



Med hensyn til void main():

void foran en funktion betyder at denne ikke returnerer noget. Med dine egne funktioner bestemmer du selv hvad man vil returnere, men med main er det den der kalder der bestemmer hvordan main skal se ud. Og den der kalder har bestemt at den skal returnere en int. Man kan heller ikke besteme at den skal returnere en double eller en string.
C og C++ standarden siger det klart at sådan er det, og at ALT kan ske hvis man ikke lader main returnere en int.
At det så ser ud til at virke i nogen tilfælde er så en anden sag; et program er ikke altid rigtig bare fordi det ser ud til at virke.


Medhensyn til at parkere hardiskens hoved, kender du så ikke funktionen:

void ParkHDHeadBelowSurface(int mms); // Does NOT return



<< < 123 > >>
t