gpt4 book ai didi

c++ - 为什么 vector 元素不打印?

转载 作者:行者123 更新时间:2023-11-30 04:51:23 25 4
gpt4 key购买 nike

我有一个正则表达式函数,可以解析 URL 请求并找到 IP 和端口模式的匹配项。我想将这些匹配项推送到一个 vector 中,然后将它们打印到屏幕上。 vector 的大小打印到屏幕上,但当我尝试遍历 vector 并打印元素时,屏幕上什么也没有打印。

代码:

    std::vector<std::string> matchVector;
std::smatch m;
std::regex e ("\\/([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})\\:?([0-9]{1,5})");
while (std::regex_search (requestURL,m,e))
{
for (auto x:m)
{
std::stringstream ss;
ss << x;
std::string str = ss.str();
matchVector.push_back(str);
std::cout << "match " << str << " ";
}
std::cout << std::endl;
requestURL = m.suffix().str();
}
std::cout << "print vector of size : " << matchVector.size()<< '\n';

//this is where nothing prints to the screen
for (int i =0; i < matchVector.size(); i++)
{
std::cout << matchVector[i];
}

当前输出:

match /192.xxx.111.xxx:8080 match 192.xxx.111.xxx match 8080
print vector of size : 3

最佳答案

std::cout 是缓冲的,因此它与您在终端上看到的不同步。尝试在打印循环后简单地刷新 std::cout:

std::cout  << std::flush;

关于c++ - 为什么 vector 元素不打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54828480/

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