string和string.c_str()的值不同
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 - %sn", message.c_str());
这两行的结果是不同的。"cout"打印文件的字符,但printf只打印3个字符
为什么会这样?
谢谢你的帮助
似乎字符串在第三个字符之后嵌入了零' '。
相关文章:
- cppcheck在const std::string[]上引发警告
- 将std::string传递给WriteConsole API
- 为std::string的某个索引赋值
- std中有类似find_last_of的函数,而string中没有
- Python str to C++ to Python str
- 使用 std::string () const 函数启动线程或未来
- 使用char类型将decimal转换为string,将string转换为decimal
- 迭代和比较映射<字符串、矢量<string>> c++ 中的值
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- 将向量解析<string>为字符串
- 在 c++ 中使用" for(string str: tmp) "?
- String & String::Concat(const char Str[])
- Boost.Python.ArgumentError:Python str未转换为std::string
- getline 的实现 ( istream&is, string&str )
- Why std::string str = {}?
- 为什么stringstream::str()截断string
- 使用 string.find() 确定第 i 个"str"的位置
- std::string 到 str::string.c_str() 与文件路径的转换中存在有趣的问题
- c++:以std::string (&str[0])作为缓冲区安全地读取文件
- Str.compare()或(string)A == (string)B用于字符串比较