我正在使用Boost :: Asio库制作C++ Client/Server TCP的模拟器.
这是我的代码的一部分:
客户:
std::string option;
std::getline(std::cin, option);
option.push_back('\r');
option.push_back('\n');
boost::asio::write(client_socket, boost::asio::buffer(option));
Run Code Online (Sandbox Code Playgroud)
服务器:
boost::asio::streambuf received;
boost::asio::read_until(socket, received, "\r\n");
char number[7];
recieved.sgetn(number, 7);
std::cout << "The entered number is: " << number << std::endl;
Run Code Online (Sandbox Code Playgroud)
(我只包括有问题的代码)
我的问题是垃圾值包含在内char[] number,如下输入1234567:

我该如何解决这个问题?
你必须null终止你的字符串,这不是由你完成的.
char number[7]; //you need additional allocation for '\0'
Run Code Online (Sandbox Code Playgroud)
使用
char number[8];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |