Compartir tecnología

Lenguaje C: printf, scanf, otras funciones de entrada y salida

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

función de impresión

1.Formato general de la función printf:


El formato general de la función printf es printf (control de formato, lista de salida)
Por ejemplo:

printf("%d,%cn",i,c);

(1) "Control de formato"

Es una cadena encerrada entre apóstrofos dobles, llamada "cadena de control de conversión" o "cadena de formato" para abreviar. Incluye dos datos:
① Declaración de formato. La declaración de formato consta de "%" y caracteres de formato, como %d, %f, etc. Su función es convertir los datos de salida al formato especificado y luego generarlos. Las declaraciones de formato siempre comienzan con el carácter "%".

Entre ellos: d representa un entero decimal, c representa un solo carácter, s representa varios caracteres, f representa un decimal, x representa la salida en formato hexadecimal, p representa la dirección de memoria de impresión, que también se genera en formato hexadecimal. Símbolo de operación de dirección variable &.
② Personajes ordinarios. Los caracteres ordinarios son caracteres que deben generarse sin cambios durante la salida. Por ejemplo, las comas, los espacios y las nuevas líneas dentro de las comas dobles en la función printf anterior también pueden incluir otros caracteres.


(2) "Columna de la tabla de salida"

Son algunos datos que el programa necesita generar, que pueden ser una constante, una variable o una expresión.

Nota:
(1) Conversión forzada: convertir números enteros en decimales
  1. int data = 10;
  2. int chushu = 3;
  3. float result;
  4. result = (float)data/chushu;
(2) Especifique el ancho de los datos y el número de decimales, utilice %m.nf
Se ha utilizado el formato "%7.2" para especificar que los datos de salida ocupen 7 columnas, incluidos 2 decimales. El último dígito se redondea, es decir, el valor aproximado se toma hacia arriba o hacia abajo. Si Tathagata especifica la parte decimal como 0, no solo no se generará el decimal, sino que tampoco se generará el punto decimal. Por lo tanto, no especifique fácilmente el número de decimales como 0.
(3) Los datos de salida se alinean a la izquierda, usando %-m.nf
Agregar un signo negativo delante de myn tiene básicamente el mismo efecto que el formulario %m.nf. Sin embargo, cuando la longitud de los datos no excede m, los datos se mueven hacia la izquierda y los espacios se llenan en el extremo derecho.

función de exploración

1.Forma general de función scanf


scanf (control de formato, columna de la tabla de direcciones)

El significado de "control de formato" es el mismo que el de la función printf. La "columna de la tabla de direcciones" es una columna de la tabla compuesta por varias direcciones, que pueden ser la dirección de una variable o la primera dirección de una cadena.


2.Formatear el sonido en la función scanf.


Similar a la declaración de formato en la función printf, comienza con% y termina con un carácter de formato, y se pueden insertar caracteres adicionales en el medio.
La función scanf se puede reescribir en la siguiente forma

scanf("a=%f,b=%f,c=%f",&a,&b,&c);


Además de la declaración de formato %f, también hay algunos caracteres comunes (incluidos "a=", "b=" y ","") en la cadena de formato.

Nota:

(1)Símbolo de dirección &

El "control de formato" en la función scanf debe ir seguido de la dirección de la variable, no del nombre de la variable.Por ejemplo, si a y b son variables enteras, si se escriben como

scaní("%f%f%f",a,b,c);

Está Mal. "a,b,c" debe cambiarse a "&a,&b,&c". Muchos principiantes cometen este error.

(2)Ingrese como está

Si hay otros caracteres en la "cadena de control de formato" además de la declaración de formato, se deben ingresar los mismos caracteres que estos caracteres en las posiciones correspondientes al ingresar datos.Si hay

scanf("a=%f,b=%f,c=%f",&a,&b,&c);

Al ingresar datos, se deben ingresar los mismos caracteres en las posiciones correspondientes.es decir, entrada
a=1,b=3,c=2 (preste atención al contenido de entrada)

Por lo tanto, no agregue espacios ni comas ni otros símbolos a scanf (está bien usar la entrada de nueva línea si hay espacios), simplemente escriba los datos de entrada requeridos directamente:

scanf("%d%d%f",&data,&data1,&data2);
(3) Entrada de caracteres

Al declarar caracteres de entrada en el formato "%c", los caracteres de espacio y los caracteres en "caracteres de escape" se ingresan como caracteres válidos, por ejemplo:
 

scanf("%c%c%c,&c1,&c2,&c3);

Al ejecutar esta función, deberás ingresar 3 caracteres consecutivos sin espacios de por medio.
Sería incorrecto insertar un espacio entre dos caracteres.

Los espacios y las nuevas líneas también son caracteres. No puede utilizar espacios ni nuevas líneas al ingresar.

(4) Entrada mixta

Al ingresar datos numéricos, si ingresa un espacio, retorno de carro, tecla Tab o encuentra caracteres no válidos (caracteres que no pertenecen a valores numéricos), se considera que los datos han finalizado. Por ejemplo:
 

scanf("%d%c%f,&a,&b,&c);

La entrada correcta es: 1234h7.6

El primer dato corresponde al formato %d. Después de ingresar 1234, se encuentra el carácter 'h', por lo que el sistema piensa que no hay dígitos después del valor 1234. El primer dato debe terminar aquí, por lo que se envía 1234 a la variable. a. Envíe el carácter subsiguiente 'h' a la variable de carácter b. Dado que %c solo requiere la entrada de un carácter, el sistema determina que la entrada del carácter ha finalizado, por lo que no es necesario agregar un espacio después del carácter de entrada '. h'. El valor después del carácter 'h' debe enviarse a la variable c. Si por negligencia se escribe erróneamente 1230.26 como 123o.26, al aparecer la letra o después de 123, se considera que aquí termina el dato numérico, y no se leen los siguientes caracteres.

Entonces, cuando ingresamos diferentes tipos de datos, debemos crear funciones scanf correspondientes por tipo. Hay varias funciones scanf para varios tipos.

(5) Múltiples funciones de escaneo

Cuando un programa contiene dos o más funciones scanf, la última función scanf considerará el carácter de nueva línea después de la entrada de la función scanf anterior como su propia entrada. Como resultado, la última función scanf no puede obtener la entrada normalmente, por lo que debe usarse. entre las dos funciones scanf Entre las funciones scanf, inserte un getchar() para absorber el carácter de nueva línea adicional.

Otras funciones de entrada y salida:

pone: diferencia de printf
(1). Agregar saltos de línea automáticamente.
(2).printf admite una variedad de patrones de salida y puts es la cadena de salida.

obtenerchar,putchar

Ejercicios de entrada y salida:

1. Ingrese letras mayúsculas y escriba letras minúsculas

Aquí se utiliza el conocimiento de los códigos ASCII. El código ASCII + 32 correspondiente a las letras mayúsculas es el código ASCII correspondiente a las letras minúsculas.

Entonces el ejemplo de código es

  1. #include<stdio.h>
  2. int main()
  3. {
  4. char a;
  5. char b;
  6. printf("请输入一个大写字母:");
  7. scanf("%c",&a);
  8. b = a+32;
  9. printf("其对应的小写字母为:%c",b);
  10. return 0;
  11. }