【问题标题】:Clearing std :: string in while loop С++ [closed]在while循环С++中清除std ::字符串[关闭]
【发布时间】:2020-12-24 11:39:00
【问题描述】:

我正在创建一个包含 While 循环的线程。它每次迭代都从 API 站点获取数据,并检查新数据。

string data;
while (true) {
     data = get_contents ('http://example.com/');
     Sleep (300,000);
}

问题是string data 变量没有被清除。
我能用它做什么?

PS:我尝试过这个,但这不起作用。

data.erase();
data.clear();
data.resize(0);

【问题讨论】:

  • 那个字符串是“std::string”吗???
  • 就目前情况而言,您的问题无法真正得到解答。您看到的行为是什么,您的期望是什么?
  • "变量未清除" 究竟是什么意思?你期望观察到什么,你实际观察到了什么?
  • 请注意,'http://example.com/' 应该是 "http://example.com/",即使用 引号,而不是单引号。如果Sleep 接受一个协议,这似乎很可能,Sleep(300,000) 只是写Sleep(0) 的一种令人困惑的方式。

标签: c++ string while-loop


【解决方案1】:

参考文档here

在做

data.clear();

是正确的方法,但使用= operator 为对象data 重新分配新值也可以。


另一方面,erase 在从字符串中删除指定字符时会很有帮助。 而resize 更多的是调整字符串大小以包含计数字符。

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 2011-07-16
    • 2021-04-22
    • 2015-03-25
    • 2017-01-20
    相关资源
    最近更新 更多