Red de conocimientos turísticos - Información de alquiler - Problema de función Sscanf del microcontrolador

Problema de función Sscanf del microcontrolador

Archivo de encabezado #include

Definir función int sscanf (const char *str, const char *formato,...);

Descripción de la función

sscanf() convertirá y formateará los datos según la cadena de parámetros cadena parámetro str. Consulte scanf() para obtener el formulario de conversión de formato. El resultado convertido se almacena en el parámetro correspondiente.

Valor de retorno El número de parámetros se devuelve si tiene éxito, -1 si falla y la causa del error se almacena en errno. Devolver 0 indica error. De lo contrario, indica la cantidad de datos formateados correctamente. Por ejemplo: sscanf(str, "%d%d%s", &i,&i2, &s); regresó. Si solo se lee el primer número entero en i, se devolverá 1. Demuestre que el segundo número entero no se puede leer desde str.

Ejemplo #include

main()

{

int i

unsigned int

char input[ ]=”10 0x1b aaaaaaaa bbbbbbbb”;

char s[5];

sscanf(input,”%d %x %5[ a-z] %*s %f”,&i,&j,s,s);

printf(“%d %d %s ”,i,j,s

); }

Ejecutar 10 27 aaaaa

sscanf(stringBuf.c_str(), "%20[^#]#%20[^ ]",...) declaración El significado de el contenido de "" es:

El símbolo "%[

]" se usa para declarar una cadena. Es más específico que "%s" y se puede usar para configurar. el estilo de lectura. Por ejemplo, "%[a-z]" solo lee letras minúsculas y termina al leer otros caracteres. Tenga en cuenta que si hay "^" entre corchetes, significa leer hasta cierto carácter. Por ejemplo:

"%[^#]": lee la cadena hasta que aparezca el signo "#".

"%20[^#]": Lee una cadena de 20 bytes y finaliza cuando aparece el signo "#".

Por lo tanto, el significado de "%20[^#]#%20[^ ]" es:

Leer dos cadenas de 20 bytes, el primer carácter La cadena se puede terminar con #, y la segunda cadena puede terminar con un retorno de carro.