Cześć, mam taki problem, tworzę prostą gierkę z systemem walki, ale chcąc wczytywać wartości z pliku (atak, obrona, HP), mam problem bo jest błąd z konwersją typu.
Próbowałem używać rzutowania (int), albo atoi() ale nic nie daje.
Proszę o pomoc jak rozwiązać ten problem, ponieważ walka musi operować na zadawanych obrażeniach czyli odejmować hp przeciwnikowi..
// plik barbarzynca.cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include "barbarzynca.h"
using namespace std;
void Barbarzynca::wczytajJednostki()
{
fstream jednostka;
jednostka.open("barbarzynca.txt", ios::in);
if(jednostka.good() == false)
{
cout << "Nie udalo sie wczytac jednostki do walki :(";
exit(0);
}
int line = (ktora_jednostka - 1)*3+1;
int actual_line = 1;
string linia;
while(getline(jednostka, linia))
{
if(actual_line == line) nazwa_jednostki = linia;
if(actual_line == line+1) HP = (int)linia;
if(actual_line == line+2) atak = (int)linia;
if(actual_line == line+3) obrona = (int)linia;
actual_line++;
}
jednostka.close();
}
void Barbarzynca::wyswietlJednostki()
{
cout << "Nazwa jednostki: " << nazwa_jednostki << endl;
cout << "HP: " << HP << endl;
cout << "Atak: " << atak << endl;
cout << "Obrona: " << obrona << endl;
}
// plik barbarzynca.h
#include <iostream>
using namespace std;
class Barbarzynca
{
public:
string nazwa_jednostki;
int HP;
int atak;
int obrona;
int ktora_jednostka;
void wczytajJednostki();
void wyswietlJednostki();
};
plik main.cpp
#include <iostream>
#include "nekromanta.h"
#include "barbarzynca.h"
using namespace std;
int main()
{
Barbarzynca b1;
b1.ktora_jednostka = 1;
b1.wczytajJednostki();
b1.wyswietlJednostki();
// Nekromanta n1;
//n1.ktora_jednostka = 1;
//n1.wczytajJednostki();
//n1.wyswietlJednostki();
}