Avatar billede talrinys Nybegynder
09. november 2004 - 21:34 Der er 5 kommentarer og
1 løsning

Hvorfor bliver min fil slettet?

Ok jeg er i gang med at lave et program, som skal kunne gemme nogle oplysninger i en fil, og det gør den også fint nok, og den kan også loade dem så længe den stadig er i programmet.
Men så snart jeg smutter ud af programmet og prøver at loade den igen så starter alt forfra, koden er her, undskyld hvis det er helt simpelt, jeg er totalt nybegynder:
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
#include <string.h>
using namespace std;

int start;
int d1;
int d2;
int gold;
int weaponbuy;
char name[64];
char gender[64];
char race[64];
char profession[64];
const int LOW = 3;
const int HIGH = 6;
ifstream loadfile ("gamedata.dat", ios::in);
ofstream gamedata ("gamedata.dat", ios::out | ios::ate);

int main()
{
    cout << "Welcome to Ebberon \nTo start a new game type 1\nTo load a game type 2\nTo see options type 3" << endl;
    cin >> start;
    if(start == 1)
    {
        cout << "Type the name of your character" << endl;
        cin >> name;
        gamedata << name << endl;
        cout << "Choose your gender(male or female):" << endl;
        cin >> gender;
        gamedata << gender << endl;
        cout << "Choose your race(see manual for info):" << endl;
        cin >> race;
        gamedata << race << endl;
        cout << "Choose your profession(see manual for info):" << endl;
        cin >> profession;
        gamedata << profession << endl;
        cout << "Rolling starting money" << endl;
        time_t seconds;
        time(&seconds);
        srand((unsigned int) seconds);
        d1 = rand() % (HIGH - LOW + 1) + LOW;
        d2 = rand() % (HIGH - LOW + 1) + LOW;
        gold = d1 + d2;
        cout << "Your gold is:" << gold << endl;
        cout << "Buy a weapon\n1.Bow 5 gold\n2.Sword 6 gold" << endl;
        cin >> weaponbuy;
        if(weaponbuy == 1)
        {
            char weapon[] = "Bow";
            gamedata << weapon << endl;
            gold = gold - 5;
            gamedata << gold << endl;
            cout << "Bow Purchased\n" << endl;
        }
        if(weaponbuy == 2)
        {
            char weapon[] = "Sword";
            cout << weapon << endl;
            gamedata << weapon << endl;
            gold = gold -6;
            gamedata << gold << endl;
            cout << "Sword Purchased\n";
        }
        cout << "Your character has been created\nYou will now start the game\n" << endl;
        start = 2;
    }
    if(start = 2)
    {
        char weapon[64];
        cout << "Loading character\n" << endl;
        loadfile.getline(name,sizeof(name));
        cout << "Name is: " << name << endl;
        loadfile.getline(gender,sizeof(gender));
        cout << "Gender is: " << gender << endl;
        loadfile.getline(race,sizeof(race));
        cout << "Race is: " << race << endl;
        loadfile.getline(profession,sizeof(profession));
        cout << "Profession is: " << profession << endl;
        loadfile.getline(weapon,sizeof(weapon));
        cout << "Weapon equipped is: " << weapon << endl;
        loadfile >> gold;
        cout << "Remaining gold: " << gold << endl;
        cout << "You are starting out in the capitol, Laktaria" << endl;
        char location[] = "Laktaria";
    }
    loadfile.close();
    gamedata.close();
}
Avatar billede arne_v Ekspert
09. november 2004 - 21:37 #1
ifstream loadfile ("gamedata.dat", ios::in);
ofstream gamedata ("gamedata.dat", ios::out | ios::ate);

læs loadfile og luk inden du kalder gamedata constructor
Avatar billede talrinys Nybegynder
20. november 2004 - 16:41 #2
Sorry men det der forstod jeg ingenting af? jeg er ret ny til det her, har bare lige siddet og læst i en bog, og så brugt nogle af eksemplerne til at starte det her.
Avatar billede arne_v Ekspert
20. november 2004 - 16:57 #3
Du skal læse hele filen inden du laver den nye fil med samme navn.
Avatar billede talrinys Nybegynder
23. november 2004 - 15:36 #4
Smider du lige et svar :-)
Avatar billede arne_v Ekspert
23. november 2004 - 16:54 #5
kommer her

du fik det til at virke ?
Avatar billede talrinys Nybegynder
23. november 2004 - 17:18 #6
Jeg har ikke så meget tid, men det skal jeg nok komme til, ellers smider jeg bare et nyt spørgsmål, det er vel bare at loade alle dataerne før jeg åbner den nye kopi, takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester