gpt4 book ai didi

c++ - 如何解析一个c_str

转载 作者:太空狗 更新时间:2023-10-29 23:30:27 25 4
gpt4 key购买 nike

我有一个包含 [51,53] 的 c_str。我想将这些对分成两个整数。它们在 c_str 中,因为我从输入文件中读取它们。

必须有一种简单的方法来解析它们。我在考虑使用 .at 函数:但我确信我把它弄得很复杂了。另外,它不起作用,因为它输出:

pair: 0x7ffffcfc2998
pair: 0x7ffffcfc2998
etc
string pairstring = buffertm.c_str();
stringstream pair1, pair2;
int pairint1, pairint2;
pair1 << pairstring.at(1) << pairstring.at(2);
cout << "pair: " << pair1;
pair1 >> pairint1;
pair2 << pairstring.at(4) << pairstring.at(5);
//cout << "pair: " << pair2;
pair2 >> pairint2;

有什么更好的方法吗?

最佳答案

像这样:

char c1, c2, c3;
int first, second;

std::istringstream iss(str);

if (iss >> c1 >> first >> c2 >> second >> c3
&& c1 == '[' && c2 == ',' && c3 == ']' )
{
// success
}

您可能想要进行额外检查以查看右括号后是否还有更多字符:

if ((iss >> std::ws).peek() != EOF) {
//^^^^^^^^^^^^^^
// eats whitespace chars and returns reference to iss
/* there are redundant charactes */
}

关于c++ - 如何解析一个c_str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19815459/

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