根据玩家位置更新文件中的描述

时间:2014-01-23 12:23:15

标签: c++ coordinates fstream

我正在用C ++创建基于文本的冒险,并希望能够为某些区域提供通用描述。

例如,区域[600,20],[1600,20],[1600,240],[600,240]可能需要描述“宽阔的牧场”。我自己设法做了区域检查;

struct point{
int x;
int y;
};

bool inarea = false;

point TL = {600,20};
point BR = {1600,240};

if(location[0]<=TL.x || location[0]>=BR.x){
    inarea = false;
    cout << "Outside area, fails on X" << endl;
return;
}
if(location[1]<=TL.y || location[1]>=BR.y){
    inarea = false;
    cout << "Outside area, fails on Y" << endl;
return;
}
inarea = true;
cout << "In area" << endl;
return;

但我不知道如何从给定特定格式的文件加载区域,例如:

600,20 1600,240广阔的牧场

我在网上搜索并认为我需要查看fstream但是还没有设法找到任何简单/逐行解释它的东西。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你可以使用这样的smth来解析

#include <stdio.h>
int main(){
    char *in = "600,20 1600,240 Wide open pasturelands";
    int a, b, c, d;
    char discription[100];
    sscanf(in, "%d,%d %d,%d %[^\n]s", &a, &b, &c, &d, discription);
    printf(" a = %d\n b = %d\n c = %d\n d = %d\n disc = %s\n",a,b,c,d, discription);
}