c++ - 如何从文本文件中动态提取负数和正数?
问题描述
我在文本文件中获得了一行,例如:
XCoordRange=0-8
现在这很容易,我可以做一个简单的ifstream
并将其读入 astring line
并继续映射和转换
第 [12] 行至int x1
和线[14]到int x2
。
这样,我可以将值解析为我的x1
和x2
坐标。
但是,当出现不同的情况时,事情会变得棘手,例如:
XCoordRange=-10--5(均为负数)
XCoordRange=-10-5(一负一正)
XCoordRange=10--5(一正一负)
所以我的问题是如何将不同场景中的数字动态映射到我的x1
and中x2
?
好像我只能读取一种类型的数据(负或正),而不是两者(负和正)。
以下是我迄今为止尝试过的:
string line = "XCoordRange=-10-5";
size_t pos = 0;
string token;
string delimiter = "=";
if(pos = line.find(delimiter) != string::npos)
{
token = line.substr(0, pos);
line.erase(0, pos + delimiter.length());
}
这给了我一个输出-10--5
,但是,我陷入了下一步应该做的事情。
解决方案
您可以使用istringstream
定义<sstream>
如下
// if line is "-10--5"
std::istringstream iss(line);
int n1, n2;
iss >> n1; // read first number ("-10")
iss.ignore(); // ignore the '-' character
iss >> n2; // read the second number ("-5")
推荐阅读
- airflow - AirFlow does not get started
- python - How can I determine whether a intermediate results has or has no data?
- php - How to cache a Doctrine 2 query properly on Symfony?
- java - How to mock a method in Java, if that method present in external jar?
- node.js - Azure function response status code is always 200
- java - The library com.google.android.gms:play-services-basement is being requested
- r - Shiny 中 SelectInput 的“动态”选择
- flutter - where does the stack widget make its entry in flutter for the following case
- javascript - 我在 asp.net mvc 中为我的购物车使用简单的购物车 js
- javascript - 如何使用javascript检查剑道网格是否包含特定项目