这是问题,我有一个文件,它看起来像这样:
Car-in-blue 4
Truck 100 5
Jeep-43 434 6
Machine 123 5
所以,一行的最后一位数字是一个整数,应该插入到一个 int 变量中,带有连字符、空格和数字的名称插入到一个字符串变量中。所以问题是我该怎么做?
如果你不明白,应该是这样的:
int a = 4
sting name = "Car-in-blue"
int a = 5\
sting name = "Truck 100"
int a = 6\
sting name = "Jeep-43 434"
int a = 5\
sting name = "Machine 123"
我添加了原始问题的屏幕截图,它不是英文的,但这没关系,这就是问题中的样子。()
我对解决没有任何想法)
您需要对输入行进行标记,在空格处将它们分开。
将最后一个标记转换为整数并保存
将除最后一个标记之外的所有标记重新组合成字符串并保存
std::ifstream ifs ( -filepath- )
std::string line;
while (getline(ifs, line))
{
std::vector<std::string> vtoken;
std::stringstream sst(line);
std::string a;
while (getline(sst, a, ' '))
if (a.length())
vtoken.push_back(a);
int a = atoi( vtoken.back().c_str());
string name;
for( auto it = vtoken.begin(); it != vtoken.end() - 1; it++ )
name += " " + *it;
}