首页 >后端开发 >C++ >如何在 C 中正确清除和重置 StringStream ?

如何在 C 中正确清除和重置 StringStream ?

Patricia Arquette
Patricia Arquette原创
2024-11-04 09:17:02397浏览

How Do You Properly Clear and Reset a StringStream in C  ?

清除和重置 StringStream

在 C 中,字符串流是与字符串对象关联的输入/输出缓冲区。它允许使用流操作来操作字符串。

问题陈述:

考虑以下代码:

<code class="cpp">stringstream parser;

parser << 5;
short top = 0;
parser >> top;
parser.str(""); // Attempt to reset parser

parser << 6; // Doesn't put 6 into parser
short bottom = 0;
parser >> bottom;</code>

尝试时出现问题使用 parser.str("") 清除字符串流的内容后重用字符串流。

解决方案:

要正确清除字符串流,您需要执行两个步骤:

  1. 使用 parser.str(std::string()) 将底层字符串重置为空字符串。
  2. 使用 parser.clear() 清除所有失败和 eof 标志。
<code class="cpp">parser.str( std::string() );
parser.clear();</code>

说明:

第一个>>操作从字符串流中读取整数 5 并设置 eof 位,因为已到达字符串末尾。随后尝试读取 6 失败,因为 eof 位仍处于设置状态。通过重置底层字符串并清除标志,您可以将流恢复到其初始配置并允许后续操作成功。

以上是如何在 C 中正确清除和重置 StringStream ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn