[英]different values of string and string.c_str()
我正在尝试使用C ++通过网络发送文件。 首先,我读取文件并将其缓冲为字符串,然后将字符串转换为c_str()并由我的套接字类发送
我在发送数据时遇到问题,无法正确输出。 我写了以下代码进行检查,并意识到我的string和string.c_str()的值彼此不同
ifstream source(path.c_str(), ios::binary);
ostringstream out;
out << source.rdbuf();
string msg = out.str();
source.close();
cout << "msg: " << msg << endl;
printf("sent - %s\n", message.c_str());
这两行的结果是不同的。 “ cout”打印我文件的字符,但是printf只打印3个字符
为什么会这样?
非常感谢您的帮助
看来该字符串在第三个字符之后包含嵌入的零“ \\ 0”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.