zdar, asi pred 2 tyzdnami som sa zacal ucit c++, dnes som chcel skusit spravit "console hru" ktora sa bude dat ulozit a potom znova nacitat, no narazil som na problem, nemam velke skusenosti s c++ a nie to s I/O, ale, hra by mala ukladat do txt suboru udaje (level, meno atd...), co aj robi, no kedze som este lama neviem ako spravit aby si program precital napr iba 3ti riadok v txt subore, cize mam teraz 10 suborov a kazdy ma v sebe len 1 vec (level.txt, meno.txt atd), cize ak by ste mi mohli dat nejaky jednoduchy priklad ako spravit aby program cital iba udaje z urciteho riadku bol by som vam vdacny
priklad
vsetko.txt
Kód:
30 //level
Mekkatorqu // meno
2913 // HP
100 // armor
ako mam spravit aby program precital len 3ti riadok? tj HP, a potom aby sa dal pouzit
Kód:
iCurrentHealth = *udaje z riadku*
dik
edit: potreboval by som este priklad ako zmenit presne ten riadok
-- to hore bol len priklad! tak nekomentovat ci z toho je nieco zle :-X
zatial to co mam:
player.h
Kód:
#include <iostream>
#include <fstream>
#include <string>
#ifndef PLAYER_H
#define PLAYER_H 1
class player
{
public:
player();
int getLevel();
int getXp();
int getMaxLevel();
int getMaxXpByLevel();
protected:
int Level;
int Xp;
int MaxLevel;
int MaxXpByLevel;
};
#endif
player.cpp
Kód:
#include "stdafx.h"
#include "player.h"
#include <sstream>
using namespace std;
player::player()
{
}
int player::getLevel()
{
ifstream qLevel("Y2xldmVs.mtg");
string qNewLevel;
if(qLevel)
{
while (!qLevel.eof())
{
getline(qLevel, qNewLevel);
stringstream ss(qNewLevel);
ss >> Level;
}
qLevel.close();
}
else if(!qLevel)
{
ofstream NewFile("Y2xldmVs.mtg", ios::out);
NewFile << "1";
Level = 1;
}
return Level;
}
int player::getXp()
{
ifstream qXp("Y3hw.mtg");
string qNewXp;
if(qXp)
{
while(!qXp.eof())
{
getline(qXp, qNewXp);
stringstream ss(qNewXp);
ss >> Xp;
}
qXp.close();
}
else if(!qXp)
{
ofstream NewFile("Y3hw.mtg", ios::out);
NewFile << "1";
Xp = 1;
}
return Xp;
}
main.cpp
Kód:
// hra.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "player.h"
using namespace std;
void main()
{
char cStartChar;
player player;
cout << "S - Start Game\nI - Info about character\nC - Credits\nQ - Quit Game\n\n";
cout << "Enter a Char: ";
cin >> cStartChar;
if(cStartChar == 'S' || cStartChar == 's')
{
system("cls");
cout << "Game is still in development" << endl;
}
else if(cStartChar == 'I' || cStartChar == 'i')
{
system("cls");
cout << "Current Level: " << player.getLevel() << endl << "Current XP: " << player.getXp() << endl;
}
else if(cStartChar == 'C' || cStartChar == 'c')
{
system("cls");
cout << "Coded by WodaN\'" << endl;
}
else if(cStartChar == 'Q' || cStartChar == 'q')
{
system("cls");
}
system("pause");
}