Sscanf c ++

Sscanf c ++

C ++ es un rápido y uno de los lenguajes de programación más antiguos ideales para el desarrollo de sistemas operativos. Ofrece alto rendimiento y gran velocidad, y cubre varios tipos de aplicaciones. Proporciona una sintaxis muy avanzada, que se hace compleja y difícil de aprender. Sin embargo, su funcionalidad incorporada es bastante útil para crear cualquier tipo de aplicación. Convertir números de cadenas o cadenas de números es una tarea bastante confusa. Por lo tanto, necesitamos algunas funciones que se puedan usar con la conversión de NUM a STR o STR a NUM. Aquí, aprenderemos a usar la función SSCANF para convertir una entrada a un tipo de salida especificado.

La función SSCANF C ++

La función SSCANF es una de las funciones de C ++ más utilizadas para convertir números en cadenas. Toma una entrada del usuario o del búfer, convierte la cadena en un int y la almacena en una variable especificada. En palabras simples, interpreta la entrada de acuerdo con el formato y almacena el valor resultante en una ubicación específica. Si realiza una función similar a SCANF, pero lee la entrada del búfer en lugar de la entrada estándar.

Consulte la siguiente sintaxis completa de la función SSCANF proporcionada por el lenguaje de programación C ++:

La función SSCANF toma un mínimo de dos argumentos de entrada y una lista de argumentos opcionales. El argumento opcional significa que se pueden omitir si no es necesario. Lee los datos del búfer "entrada" en el formato "formato" en la ubicación especificada por el "argumento_list". El parámetro o argumento de "entrada" representa la cadena de la función que se utiliza para recuperar los datos. El parámetro "Formato" representa la cadena de formato que especifica cómo leer la entrada de un búfer.

El formato del especificador "formato" es el siguiente:

Comienza con un signo de % seguido de * que es un carácter de supresión de asignación. Los campos de ancho y longitud son opcionales y se pueden omitir. Si se proporciona, la función SSCANF solo consume ese número máximo de caracteres especificados por el "ancho". El campo de "longitud" define el tamaño del argumento receptor. El Specifier_Name contiene el carácter del especificador (C, S, D, etc.) Al especificar el tipo de conversión. El "argumento_list" puede contener al menos un argumento adicional. Depende de la cadena de "formato".

La función SSCANF devuelve los tres tipos de resultados: los argumentos de recepción asignados con éxito en caso de una función exitosa, cero en el caso de falla coincidente y EOF en caso de falla de entrada. Ahora, exploremos algunos ejemplos útiles para aprender el uso de la función SSCANF de C++.

Ejemplo 1:

Este es un ejemplo muy simple y básico de la función SSCANF. Se asigna una cadena a una variable que se pasa a la función SSCANF. El "int a" se define para contener el resultado de la función SSCANF. Consulte el siguiente código dado y comprenda cada línea de código.

Después de incluir el archivo de encabezado iOSTream, se inicia el método Main (). La cadena "S = 104785" se inicializa y se pasa a la función SSCANF SSCANF (S, "%D", y a). El %d representa el formato de conversión. Y se proporciona "A" para mantener el resultado.

#incluir
usando el espacio de nombres STD;
int main ()

const char* s = "104785";
int a;
sscanf (s, "%d", & a);
cout << "\nThe converted value of "<regresar 0;

La salida se puede ver aquí. La cadena "104785" se convierte en el número decimal "104785".

Ejemplo 2:

En este ejemplo, leemos el flotador y el flotador doble usando la misma función SSCANF. Se asigna una cadena a una variable que se pasa a la función SSCANF para la conversión de formato. Consulte el siguiente código para comprender la función de SSCANF con números de flotación y doble flotante.

Tenga en cuenta que en el ejemplo anterior, %D se usa como un "especificador de formato". En este ejemplo, se usan %F y %LF. El %F se usa para convertir la entrada a un número de flotación y %LF se usa para convertir el número en un número de flotación doble.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

const char* s = "104785.54 ";
flotar a;
sscanf (s, "%f", & a);
printf ("\ nthe Float Value es: %f", a);
doble B;
sscanf (s, "%lf", & b);
printf ("\ n El valor de doble flotación es: %f", b);
regresar 0;

Verifique la salida dada en lo siguiente:

Tenga en cuenta que la salida después del lugar decimal es diferente para el flotador y para el doble flotador. Esto se debe a que el flotador proporciona el resultado aproximado más cercano y es conveniente, rápido y preciso. Mientras que el doble flotante proporciona el resultado calculado exacto, ya que se trata de fiabilidad y precisión. Sin embargo, es un poco más lento que la flotación.

Ejemplo 3:

Juguemos con algunos datos de matriz. En este ejemplo, la entrada se proporciona en forma de matriz y se convierte en cadenas simples. El especificador de formato %s se usa para convertir la entrada en una cadena. Entonces, usamos el %s como un especificador de formato aquí. Se definen dos matrices vacías para contener la salida - FN [10] y LN [10]. El siguiente es el código.

Aquí, se asigna un nombre que consiste en nombre y apellido a una matriz BUF [] y se pasa a la función SSCANF, convirtiendo cada elemento de la matriz en una cadena. Cuando ejecute el programa de código, notará cada elemento de la matriz por separado. Como solo hay dos campos de salida definidos (FN y LN), los dos elementos de matriz se muestran en el programa. La matriz FN [10] contiene el primer nombre "Daniyal". Y la matriz LN [10] contiene el apellido "privador".

#incluir
int main ()

char fn [10], ln [10];
char buf [] = "Daniyal private";
sscanf (buf, " %s %s", fn, ln);
printf ("El primer nombre es: %s \ nthe apellido es: %s \ n", fn, ln);
regresar 0;

La salida de este ejemplo se muestra en el siguiente:

Como puede ver, el valor de la matriz "Daniyal Privater" se convierte en dos cuerdas: "Daniyal" y "Privater" - por el especificador de formato %s.

Conclusión

Este tutorial se trata de la función SSCANF. Aquí, aprendimos a usar la función SSCANF de manera eficiente para convertir los datos. La función SSCANF toma la entrada del búfer y la convierte en el tipo de salida especificado definido por el especificador de "formato". Se necesitan tres o más tres argumentos dependiendo del especificador de "formato". El valor de entrada es el primer parámetro, y el especificador de formato es el segundo. Instruye la función del tipo de conversión. El tercer parámetro es opcional. Puede ser un argumento o una lista de múltiples argumentos dependiendo del especificador de "formato". Devuelve los tres tipos de resultados: los argumentos receptores, cero o EOF (final del archivo). El SSCANF es una función muy simple y fácil de C ++ que se usa para conversiones.