chu*_*uck 0 c++ string stream fill
const size_t bytes我有一个流,我需要多次用文本 ( )填充精确大小( const char * filler = "Something") ,直到达到字节大小。
像这样:SomethingSomethingSomething或SomethingSome,如果没有更多可用字节,则可以将其截断,但它始终必须是精确的大小。例如字节为 30
const size_t bytes = 30;
const char * text = "Something";
int x = bytes / strlen(text);
for (int j = 0; j < x; j++)
{
for (int i = 0; i < strlen(text); i++)
{
stream << text[i];
}
}
Run Code Online (Sandbox Code Playgroud)
像上面这样,我只能用未截断的单词填充流,而不是:SomethingSomethingSomethingSom(这正好是 30)
我该如何修改这段代码?谢谢你!
您可以使用write()函数将数据放入std::ostream. 重复此操作以获得所需的字节数。
const size_t bytes = 30;
const char * text = "Something";
size_t textLen = strlen(text);
for (size_t i = 0; i < bytes / textLen; i++)
{
stream.write(text, textLen);
}
stream.write(text, bytes % textLen);
Run Code Online (Sandbox Code Playgroud)
或者简单地将每个字符放入流中:
const size_t bytes = 30;
const char * text = "Something";
size_t textLen = strlen(text);
for (size_t i = 0; i < bytes; i++)
{
stream << text[i % textLen];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |