我正在使用Boost :: Asio库进行C++客户端/服务器TCP模拟器。从Streambuffer转换字符串中的垃圾打印
这里是我的代码部分:
客户:
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));
服务器:
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;
(我只包括了有问题的代码)
我的问题是垃圾值都包含在char[] number
中,像这样用于输入1234567
:
我怎样才能解决这个问题?
你应该使用字符串来存储数量和使用来自'read_until'的返回值读取的字节数调整其大小。那么你不必处理所有的'\ 0'废话。 – Borgleader