C ++ Используйте atoi () для преобразования одного символа вместо нескольких символов - PullRequest
0 голосов
/ 27 октября 2018

Я отправляю сообщение по сети со следующим простым кодом:

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

Затем я получаю сообщение на сервере и преобразовываю первый символ сообщения в int со следующимcode:

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

Этот код работает относительно хорошо, потому что если строка имеет вид «1foo», сервер выведет «1» на консоль.Однако, если строка «12foo», сервер выведет «12» вместо «1».

Как это можно исправить, чтобы сервер печатал только первый символ строки (как целое число)?

1 Ответ

0 голосов
/ 27 октября 2018

Самый простой способ (если вы работаете с кодировкой ASCII):

int v = buf[0] - '0';
cout << v;
...