我正在通过网络发送一条消息,其中包含以下简单代码:
SSL_write(ssl, argv[1], strlen(argv[1]));
Run Code Online (Sandbox Code Playgroud)
然后,我接收服务器上的消息并将消息的第一个字符转换为int,具有以下代码:
char buf[1024] = {0};
SSL_read(ssl, buf, sizeof(buf));
std::cout << atoi(&buf[0]);
Run Code Online (Sandbox Code Playgroud)
此代码工作得相当好,因为如果字符串类似于"1foo",服务器将打印出"1"到控制台.但是,如果字符串是"12foo",则服务器将打印出"12"而不是"1".
我该如何解决这个问题,所以服务器只打印出字符串的第一个字符(作为int)?
最简单的方法是(假设您正在使用ASCII编码):
int v = buf[0] - '0';
cout << v;
Run Code Online (Sandbox Code Playgroud)