Hjälp! [C++]

Medlem
Hjälp! [C++]

Har ett par frågor kring C++

1. Vad är skillnaden mellan int main och void main?

2. Om man har en int variabel, som börjar på noll och ökar ju mer man gör någonting speciellt, kan den sparas i en fil och sedan öppnas och fortsätta från "där den var" sist? I detta fall heter variabeln xp, så ni förstår nog vad jag är ute efter.

3. Kan man på något sätt slumpa fram en siffra i en int variabel mellan t. ex: 3-6 som då minskar en annan int variabel med så mycket. I detta fall skulle man kunna kalla dem "skada" och "hp" ^^

som ni kanske förstår så sitter jag och försöker göra ett litet rpg spel, inget avancerat(ännu) men ändå något ^^

Medlem

1. Samma som på alla metoder. Det är returtypen, int main betyder att du returnerar en int till operativsystemet när du avslutar, void main att du inte gör det. I c++ skall du alltid använda int main, men du behöver inte bry dig om att returnera något explicit.

2. Ja, det går utmärkt, kolla dokumentationen efter ifstream och ofstream.

3. Går också utmärkt, kolla efter std::rand.

Du får lägga upp programmet nånstans sen när du har ett litet spelbart demo.

Hoppas det räcker, annars får du fråga mera


signatur

I never hate in plural.

Inaktiv

1.
I ISO C++ standarden så ska main returnera en int så om man ska hålla sig till ren C++ så är det int main som är brukbart att det går att använda void main är väl mest för att det är så i C och så har det blivit kvar av praktiska anledningar.

2.
Ja... föreslår att du tittar på fstream i STL.
Titta här för exempel:
http://www.cplusplus.com/doc/tutorial/files.html

För att sen läsa in till en int kan du bland annat använda istringstream (i sstream) för att konvertera en sträng till en int. Finns också lite klassiska C funktioner om man känner för det men en stream är smidigt om man har flera värden samt att det går lätt att använda stringstreams mellan olika datatyper.

Blir typ:
unsigned int xp;
std::istringstream streamInts(strIntValues);
streamInts >> xp;

3.
Enklaste är att använda en random funktion som hittas i C's stdlib.h som inkluderas i C++ så här: #include <cstdlib>

Det finns ett exempel här:
http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html

rand() returnerar mellan 0 och RAND_MAX. I exemplet så begränsar de intervallet genom att använda modulo, men då det kan resultera i att du får värdet 0 så lägger de till +1.

1
Skriv svar