将字符串附加到日志文件
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。
下面是函数和调用行。我有一个字符键。如果在 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。