C ++使用atoi()转换单个字符而不是多个字符

时间:2018-10-26 21:14:49

标签: c++ string c++17

我正在使用以下简单代码通过网络发送消息:

SSL_write(ssl, argv[1], strlen(argv[1]));

然后,我在服务器上接收到该消息,并使用以下代码将消息的第一个字符转换为int:

char buf[1024] = {0};
SSL_read(ssl, buf, sizeof(buf));
std::cout << atoi(&buf[0]);

此代码相对较好,因为如果字符串类似于“ 1foo”,则服务器将在控制台上输出“ 1”。 但是,如果字符串为“ 12foo”,则服务器将打印出“ 12”而不是“ 1”。

如何解决此问题,因此服务器仅打印出字符串的第一个字符(作为int)?

1 个答案:

答案 0 :(得分:7)

最简单的方法是(前提是您正在使用ASCII编码):

                             ","logger_name":"org.jooq.Constants","thread_name":"database-1","level":"INFO","level_value":20000,"HOSTNAME":"9c788e89921e"}