我正在维护一个 C++ 方法,我的一个客户遇到了问题。该方法应该将一系列标识符写入由新行分隔的文件。然而,在他们的机器上,该方法以某种方式将一系列 NULL 写入文件。在二进制编辑器中打开文件显示它包含全零。
我不明白为什么会这样。我尝试分配空字符串和第一个字符集为 0 的字符串。创建文件没有问题,只需将标识符写入它即可。
这是方法:
void writeIdentifiers(std::vector<std::string> IDs, std::string filename)
{
std::ofstream out (filename.c_str(), std::ofstream::binary);
if (out.is_open())
{
for (std::vector<std::string>::iterator it = IDs.begin();
it != IDs.end();
it++)
{
out << *it << "\n";
}
}
out.close();
}
我的问题:您是否可以提供任何可能的输入来创建一个包含 NULL 值的文件的方法?