【发布时间】:2013-04-22 23:10:20
【问题描述】:
我一直在摆弄这个,它返回的只是'save.rp'文件中不同行的前两个数字,
int characterPosition [2] = {0,0};
string convToStr(char *ch)
{
stringstream ss;
string res;
ss << ch;
ss >> res;
return res;
}
int convToInt(string ch)
{
stringstream ss(ch);
int num;
ss >> num;
return num;
}
void loadSave()
{
string loadPos;
ifstream file("save.rp");
if ((file.is_open())&&(file.good()))
{
getline(file,loadPos);
}
file.close();
char str[] = {*loadPos.c_str()};
char delim[] = "-";
char *result = NULL;
result = strtok(str, delim);
int num = 0;
while (result != NULL)
{
characterPosition[num] = convToInt(convToStr(result));
cout << characterPosition[num] << endl;
result = strtok(NULL, delim);
}
}
“save.rp”文件如下所示:400-2000
它应该分别返回每个数字,在这种情况下是 400 和 2000。
我在这里做了什么傻事吗?
【问题讨论】:
-
你是什么意思看起来像这样:400-2000?
-
这就是它所包含的(抱歉不清楚)
-
所以它包含 2 个数字 - 400 和 2000。所以你的问题是“它返回的只是前两个数字”。还是您的意思是它包含从 400 到 2000 的所有数字?每个数字是否单独一行。
-
它只返回 4 和 0,它们是分开的。它应该返回 400,然后是 2000
标签: c++ c fstream stringstream strtok