gpt4 book ai didi

c++ - 读取包含整数的行和包含空格的字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:40 26 4
gpt4 key购买 nike

我的输入格式如下:

integer multi-word-string integer

我知道multi-word-string的最大长度,但我不知道它包含多少个单词。我如何阅读它?

最佳答案

我会先阅读该行并将第一个和最后一个单词转换为整数。松散地:

std::string line;
std::getline(infile, line);

size_t ofs_front = line.find(' ');
size_t ofs_back = line.rfind(' ');

int front = std::strtol(line.substr(0, ofs_front).c_str(), NULL, 0);
int back = std::strtol(line.substr(ofs_back).c_str(), NULL, 0);
std::string text = line.substr(ofs_front, ofs_back - ofs_front);

您必须进行一些修改以消除空格(例如,增加偏移量以吞噬所有空格),并且您应该添加大量错误检查。

如果你想规范化文本中的所有内部空间,那么还有另一种使用字符串流的解决方案:

std::vector<std::string> tokens;
{
std::istringstream iss(line);
std::string token;
while (iss >> token) tokens.push_back(token);
}
// process tokens.front() and tokens.back() for the integers, as above
std::string text = tokens[1];
for (std::size_t i = 2; i + 1 < tokens.size(); ++i) text += " " + tokens[i];

关于c++ - 读取包含整数的行和包含空格的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8195403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com