将字符串附加到日志文件

Appending String to Log File

下面是函数和调用行。我有一个字符键。如果在 IDE 内,如果我在将 tmpstring 转换为字符串后检查它,它会显示我期望的值 "E2247410849FA3"。但是,当我查看日志文件时,我得到“003BFA34”,我希望它显示 722....我做错了什么?

void logit(const std::string& ctext)
 {
     std::ofstream outfile;
     outfile.open("c:\hex.log", std::ios_base::app |  std::ios_base::out);
     outfile << &ctext <<endl;
 }

tmpstring = std::string(sKey,14);
logit(tmpstring);

您附加的设置正确,但您的代码有一个致命缺陷:

您打印的是字符串的内存地址,而不是实际的字符串。

为了纠正这个问题,只需使用 ctext 而不是 &ctext:

void logit(std::string ctext)
 {
     std::ofstream outfile;
     outfile.open("c:\hex.log", std::ios_base::app |  std::ios_base::out);
     outfile << ctext <<endl;
     //         ^ no &
 }

在一个完全不相关的性能说明上,您可能应该通过 const ref。