Используя «@» в качестве разделителя в sscanf, я не получаю ожидаемого результата.
Пример:
#include <stdio.h>
int main()
{
char buf[512], scan_buf1[512], scan_buf2[512];
sprintf(buf, "abc@def");
sscanf(buf, "%s@%s", scan_buf1, scan_buf2);
printf("Scanned buffer1 - %s scan buffer2 - %s\n", scan_buf1, scan_buf2);
}
Expected op:
Scanned buffer1 - abc scan buffer2 - def
Actual op:
Scanned buffer1 - abc@def scan buffer2 -
Должен ли я использовать какой-то специальный синтаксис для "@"? Я не мог ничего увидеть для этого на странице руководства.
strtok
, поэтому я бы рекомендуем использоватьsscanf
в вашем случае. 01.08.2014"%[^@]@%[^@]"
для симметрии и не советовал проверять возвращаемое значениеsscanf()
. 01.08.2014