Red de conocimientos sobre prescripción popular - Remedios caseros - Uso del carácter de formato i en scanf

Uso del carácter de formato i en scanf

Columna de la tabla de salida)

Por ejemplo: printf("i=d, ch=c\n", i, ch);

Explicación:

p>

(1) "Control de formato" es una cadena encerrada entre apóstrofos dobles, también llamada "cadena de control de conversión". Incluye dos tipos de información:

①Descripción del formato: por It. se compone de "" y caracteres de formato. Su función es convertir los datos de salida al formato especificado para la salida.

② Caracteres ordinarios, es decir, caracteres que deben generarse tal como están.

(2) La "columna de la tabla de salida" son algunos datos que deben generarse, que pueden ser una expresión.

(3) La forma general de la función printf se puede expresar como

printf(parámetro 1, parámetro 2,..., parámetro n)

La función es generar el parámetro 2 ~ parámetro n según el formato dado por el parámetro 1

2. Formatear caracteres (9 tipos)

(1) d (o i) formato de carácter. Se utiliza para generar números enteros decimales, existen los siguientes usos:

①d, salida de acuerdo con la longitud real de los datos enteros.

②md, m es el ancho del campo de salida especificado. Si el número de dígitos de datos es menor que m, se agregarán espacios en el extremo izquierdo. Si es mayor que m, se generará el número real de dígitos.

③ld (mld también está disponible), genera datos enteros largos.

Por ejemplo: long a=123456;

printf("ld", a

(2) o formato de carácter, resultado entero en formato octal. . Formato: o, mo, lo, mlo son aceptables.

(3) carácter de formato x (o X), genera un número entero en forma de número hexadecimal. Formato: x, mx, lx, mlx están disponibles.

(4) carácter de formato u, utilizado para generar datos sin signo, es decir, números sin signo, generados en forma decimal. Formato: u, mu, lu están todos disponibles.

Ver: li4-3.c/*Salida de datos sin firmar*/

(5)carácter de formato c, utilizado para generar un carácter. Formato: c o mc están disponibles.

Carácter de formato (6), utilizado para generar una cadena. Formato: s, ms, -ms, m.ns, -m.ns están todos disponibles.

Ver: li4-5.c /*Salida de cadena*/

(7) Carácter de formato f, utilizado para generar números reales (incluida la precisión simple y doble), en formato decimal producción. Formato: f, m.nf, -m.nf son todos aceptables.

Nota: El número de dígitos significativos para números reales de precisión simple es generalmente de 7 dígitos, y para precisión doble, es de 16 dígitos.

Ver: li4-6.c/*El número de dígitos significativos al generar un número real de precisión simple*/

li4-7.c/*El número de dígitos significativos al generar un número real de doble precisión */

li4-8.c/*Especifique el número de decimales al generar números reales*/

(8) e (o E ) formato de carácter, genera números reales en forma exponencial. Formato: e, m.ne, -m.ne son todos aceptables.

(9) El carácter de formato g (o G) se utiliza para generar números reales. Selecciona automáticamente el formato f o el formato e (seleccione el que tenga un ancho menor al generar) según el tamaño. del valor.

3. Nota

(1) Excepto X, E y G (expresados ​​en letras mayúsculas), otros caracteres de formato deben estar en letras minúsculas;

( 2) La cadena de "control de formato" puede contener caracteres de escape;

(3) Si desea generar el carácter "", debe utilizar dos expresiones consecutivas en la cadena de "control de formato", como como:

printf("f", 1.0/3);

La función scanf() es la segunda función que todos los estudiantes de lenguaje C encuentran en el proceso de aprendizaje del lenguaje C ( La primera función es printf(), el programa "hola, mundo" de Brian W.Kerninghan y Dennis M.Ritchie es básicamente el primer ejemplo para todos los estudiantes de lenguaje C), por lo que la función scanf() debería ser el primer ejemplo para los estudiantes de lenguaje C. Una función que los programadores pueden usar con competencia, pero muchos principiantes no pueden usarla bien en la programación real, usan la función scanf () incorrectamente, lo que hace que el programa genere algún tipo de error y no se ejecute normalmente, e incluso produzca ". scanf() La función tiene errores", "la función scanf() es inútil" y otros conceptos erróneos.

Este artículo combina la práctica de programación del autor y los problemas encontrados por los internautas en el foro para explicar las dudas. Sin embargo, el nivel del autor es limitado (nivel de novato) y, espero, inevitablemente habrá algunas falacias. me puede dar algún consejo. (Correo electrónico: knocker.k@126.com)

Este artículo se divide en la primera y segunda parte para describir el uso de la función scanf() en lenguaje C, centrándose en los problemas comunes que ocurren durante el proceso. uso de la función scanf() Errores y soluciones. Por supuesto, algunas de las soluciones de este artículo se pueden resolver mejor utilizando otras funciones y métodos, pero este artículo solo analiza la función scanf() en sí.

En el artículo anterior, se presentó en detalle la composición de la cadena de control de la función scanf(). El siguiente artículo utiliza rutinas reales para introducir errores comunes y contramedidas al usar la cadena de control de la función scanf().

2. Cadena de control de la función scanf()

Nombre de la función: scanf

Función: realizar entrada formateada

Uso: int scanf (char *formato[, argumento,...]);

La función scanf() es una función de entrada formateada de terminal general. Lee información de entrada desde el dispositivo de entrada estándar (teclado). Puede leer datos de cualquier tipo intrínseco y convertir automáticamente los valores al formato integrado apropiado.

El formato de llamada es: scanf("lt; cadena formateada gt;", lt; tabla de direcciones gt;

La función scanf() devuelve el número de elemento de datos asignado correctamente; y devuelve EOF cuando se produce un error.

La cadena de control consta de tres tipos de caracteres:

1. Especificador de formato;

2. Carácter de espacio en blanco;

3.

Carácter sin espacios en blanco;

(A) Especificador de formato

Descripción del carácter de formato

a Leer un valor de punto flotante (solo válido en C99)

A Igual que arriba

c Leer en un carácter

d Leer en entero decimal

i Leer en entero decimal, octal y hexadecimal

o Leer en entero octal

x Leer en entero hexadecimal

X Igual que arriba

c Leer en un carácter

s Leer en una cadena

f Leer en un número de coma flotante

F Igual que arriba

e Igual que arriba

E Igual que arriba

g Igual que arriba

G Igual que arriba

p Leer en un puntero

u Leer en un decimal sin signo entero

n El número equivalente de caracteres del valor que se ha leído hasta el momento

[] Escanear conjunto de caracteres

Leer símbolos

Tabla de caracteres de descripción de formato adicional

Descripción del modificador

El modificador de longitud L/l ingresa datos "largos"

el modificador de longitud h ingresa datos "cortos"

W entero La constante especifica el ancho de los datos de entrada

* El asterisco lee un dato en el espacio

hh, ll son iguales que h, l pero Sólo son válidos para C99.

(B) Caracteres en blanco

Los caracteres en blanco harán que la función scanf() omita uno o más caracteres en blanco en la entrada durante la operación de lectura. Los caracteres en blanco pueden ser espacios. pestaña, nueva línea Espere hasta que aparezca el primer carácter que no sea un espacio en blanco.

(C) Caracteres que no son espacios en blanco

Un carácter que no es un espacio en blanco hará que la función scanf() elimine los caracteres que son iguales al carácter que no es un espacio en blanco al leer.