本文整理汇总了C++中StringRef::Clear方法的典型用法代码示例。如果您正苦于以下问题:C++ StringRef::Clear方法的具体用法?C++ StringRef::Clear怎么用?C++ StringRef::Clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringRef
的用法示例。
在下文中一共展示了StringRef::Clear方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/*static*/ void MassStorage::CombineName(const StringRef& outbuf, const char* directory, const char* fileName)
{
outbuf.Clear();
size_t outIndex = 0;
size_t inIndex = 0;
// DC 2015-11-25 Only prepend the directory if the filename does not have an absolute path or volume specifier
if (directory != nullptr && fileName[0] != '/' && (strlen(fileName) < 2 || !isdigit(fileName[0]) || fileName[1] != ':'))
{
while (directory[inIndex] != 0 && directory[inIndex] != '\n')
{
outbuf.Pointer()[outIndex] = directory[inIndex];
inIndex++;
outIndex++;
if (outIndex >= outbuf.Capacity())
{
reprap.GetPlatform().MessageF(ErrorMessage, "CombineName() buffer overflow");
outbuf.copy("?????");
return;
}
}
if (inIndex > 0 && directory[inIndex - 1] != '/')
{
outbuf.Pointer()[outIndex] = '/';
outIndex++;
}
inIndex = 0;
}
while (fileName[inIndex] != 0 && fileName[inIndex] != '\n')
{
if (outIndex >= outbuf.Capacity())
{
reprap.GetPlatform().Message(ErrorMessage, "file name too long");
outbuf.copy("?????");
return;
}
outbuf.Pointer()[outIndex] = fileName[inIndex];
inIndex++;
outIndex++;
}
outbuf.Pointer()[outIndex] = 0;
}