Escribió un programa C en DEV-C++ que utiliza archivos para configurar la entrada y la salida.
Entrada y salida estándar:
1.scanf, printf
int scanf(const char *format, arg_list)
scanf obtiene principalmente valores de parámetros del flujo de entrada estándar. El formato es el formato de parámetro y el tipo de parámetro especificados, como scanf("%s. ,%d" ,str,icount);
Requiere ingresar una cadena como "hijo de puta,1000" en el flujo de entrada estándar. Al mismo tiempo, el programa convertirá "hijo de puta" en str y 1000 Convertir a icount.
El valor de retorno de la función scanf es un valor int, que es el número de asignaciones exitosas. En el ejemplo anterior, si la llamada a la función es exitosa, devolverá 2, por lo que cuando escribimos el programa, podemos pasar la declaración
if( scanf("%s,%d",str, icount) ! = 2)
{
...
}
Determina si la entrada del usuario es correcta.
Ejemplo:
#include
#include
int main() p>
{
printf("Datos de entrada:\n");
char str[64];
int num;
scanf("%s,%d", str, &num);
printf("%s,%d", str, num);
devuelve 0;
}
Datos de entrada:
nihao,1
nihao,1,2009091631
Aquí se trata "," como cadena, el nhao y el 1 anteriores son cadenas. Tenga en cuenta que se utilizan espacios, tabulaciones y retornos de carro para separar las variables al escanear.
Por lo tanto, cuando utilice scanf, intente utilizar estos delimitadores. No seas como scanf("%s,%d", str, &num); que no ingresa los datos correctamente.
int printf(const char *format, arg_list)
printf genera principalmente cadenas formateadas al flujo de salida estándar, que se definen como stdin en el archivo de encabezado stdio.h y stdout. Control de formato
El control de formato es una cadena entre comillas dobles, también llamada "cadena de control de conversión", que contiene las siguientes dos partes de información.
Descripción del formato: Consta de "%" y caracteres de formato, como %d, %f, %c. Su función es convertir los datos de salida al formato especificado para la salida. consta del carácter "%" de inicio.
Caracteres binarios: caracteres que deben mostrarse tal como están, o caracteres con significados especiales, como \n,\t.
\nNueva línea
\f Borrar pantalla y salto de página
\rCarácter de retorno de carro
\tCarácter de tabulación
\xhh representa la codificación ASCII en hexadecimal, donde hh es un número hexadecimal de uno a dos
2. La lista de salida
son algunos datos que deben generarse, o pueden ser una expresión si necesita generar varios elementos en la función Variables o. expresiones, sepárelas con comas.
Salida de algunos caracteres especiales:
Las comillas simples, comillas dobles y barras invertidas agregarán el carácter de escape "\" antes de la salida, como "\'", "\", "\".
% de salida son dos % conectados, es decir, printf("%%");
Los formatos comunes se describen a continuación:
Caracteres de formato p >
d Genera números enteros con signo en forma decimal (números positivos sin signo)
o Genera números enteros sin signo en forma octal (números positivos sin signo)
o Genera números enteros sin signo en formas decimales ( número positivo sin signo). Entero sin signo en forma octal (sin prefijo 0)
x Entero sin signo en forma hexadecimal (sin prefijo 0x)
u Entero sin signo en forma decimal
f Salidas números reales de precisión simple como decimales
lf Genera números reales de doble precisión como decimales
u Números reales de doble precisión como decimales
e Precisión simple y números reales de doble precisión como exponentes
e números reales de precisión simple y doble
g Genera números reales de precisión simple y doble, %e
con una longitud más corta ancho de salida de %fc genera caracteres individuales
s genera cadenas
Especial:
Para entrada y salida de enteros de 64 bits, 64 en el Entorno C ++ en POJ El entero de 64 bits en el entero de bits (es decir, VC) es:
__int64 (tenga en cuenta que hay dos guiones bajos delante de int), y la entrada/salida El formato es "%I64d".
En el entorno G++ (es decir, Dev C++), los enteros de 64 bits son
largos y los formatos de entrada y salida son "%lld".
Ancho de salida
El número mínimo de dígitos de salida se expresa como un número entero decimal. Tenga en cuenta que si el número real de dígitos es mayor que el ancho definido, la salida será el número real de dígitos; si el número real de dígitos es menor que el ancho definido, el número real de dígitos será espacios o 0.
Puedes insertar un número entre "%" y la letra para indicar el ancho máximo.
%9.2f significa un número de punto flotante con un ancho de campo de salida de 9, con 2 puntos decimales, 6 dígitos enteros, un punto decimal y 9 dígitos insuficientes para una justificación correcta.
%8s significa generar una cadena de 8 caracteres, que no es suficiente para justificar 8 caracteres a la derecha.
Si la longitud de la cadena o el número de dígitos enteros excede el ancho del campo especificado, se generará la longitud real.
Pero para los números de punto flotante, si el número de dígitos enteros excede el ancho entero especificado, se generará el número real de dígitos enteros;
Si el número de dígitos decimales excede el ancho decimal especificado. La salida se basará en el ancho especificado y se redondeará al entero más cercano.
Además, si desea agregar algunos ceros delante del valor de salida, debe agregar un cero delante del elemento de ancho del campo.
Por ejemplo: d significa que al generar un valor de menos de 4 dígitos, se agregarán ceros delante del valor para hacer que el ancho total sea de 4 dígitos.
Si se utilizan números de punto flotante para representar el formato de salida de caracteres o números enteros, el número después del punto decimal representa el ancho máximo y el número antes del punto decimal representa el ancho mínimo.
Por ejemplo: %6.9s significa mostrar una cadena cuya longitud no es menor que 6 pero no mayor que 9. Si es mayor que 9, se eliminará el contenido posterior al noveno carácter.
Precisión
El carácter de formato de precisión comienza con "." seguido de un número entero decimal. Su significado es: si la salida es un número, es el número de dígitos después del punto decimal; si la salida es un carácter, es el número de caracteres;
Si el número real de dígitos es; mayor que el número de precisión definido, el exceso se truncará.
Carácter de formato de bandera
- El resultado está justificado a la izquierda y los espacios se completan a la derecha
+ Símbolo de salida (signo positivo y negativo) espacio Cuando el valor de salida es un valor positivo, doblar con espacios, y cuando el valor de salida es negativo, doblar con signos menos
Ejemplo:
doble c = 24212345.24232;
printf("%020.4" ); significa que la salida tiene una precisión de 4 dígitos después del punto decimal, la salida ocupa 20 dígitos y se agrega 0 si quedan dígitos.
2.getc,putc
int getc(FILE *fp)
getc lee principalmente un carácter del archivo. La declaración comúnmente utilizada para determinar si la lectura del archivo ha finalizado es: (ch = getc(fp))! =EOF. EOF es la marca de final de archivo,
definida en stdio.h, al igual que EXIT_SUCCESS y EXIT_FAILURE se definen en stdlib.h, el archivo se puede interpretar como una secuencia, por lo que cuando fp es stdin,
p>
getc(stdin) Igual que getchar().
int putc(int ch,FILE *fp)
putc escribe principalmente el carácter ch en el archivo fp. Si fp es stdout, putc es equivalente a putchar().
#include
#include
int main()
{
ARCHIVO * fp = fopen("tmp.txt", "w+");
putc('a', fp);
fflush(fp);
fclose(fp);
fp = fopen("tmp.txt", "r+");
int c = getc(fp); p> p>
printf("%c\n", c
fclose(fp);
int ch = getc(stdin);
putc( ch, salida estándar);
putc( '\n', salida estándar);
putc('a', salida estándar);
return 0 ;
}
3.getchar,putchar
int getchar(void)
getchar() lee principalmente del estándar carácter de flujo de entrada. El flujo de entrada estándar predeterminado es stdin, definido en stdio.h. Sin embargo, la lectura de caracteres del flujo de entrada requiere almacenamiento en búfer, por lo que el programa no se ejecuta cuando se presiona un carácter en la pantalla. Generalmente se ejecuta después de presionar la tecla Enter en la pantalla y luego se coloca la cadena antes de la tecla Enter. en el búfer, getchar() lee los caracteres uno por uno del búfer. Por supuesto, también puede especificar el carácter de terminación en el bucle while, como la siguiente declaración:
while ((c = getchar()) != '#')
Esta declaración comienza con '#'Finalizar.
int putchar(int ch)
Putchar(ch) escribe principalmente el carácter ch en la salida estándar del flujo de datos.
#include
#include
int main()
{
int n;
mientras((n = getchar()) != '#')
{
putchar((char)n );
}
devuelve 0;
}
4. obtiene, pone
char * obtiene (char *str)
gets() lee principalmente una cadena del flujo de entrada estándar y vuelve a leer la cadena. Sale cuando se lee un carácter de nueva línea y omite el carácter de nueva línea.
El valor de retorno es la primera dirección de la cadena obtenida, que implementa la operación de enlace.
int puts(char *str)
puts() escribe principalmente la cadena str en la salida estándar del flujo de datos estándar y agrega un carácter de nueva línea al final de la salida.
Un valor de retorno de 0 significa normal, un valor distinto de 0 significa un error
#include
#include
int main()
{
char str[256];
printf("%s\n", gets(str ));
int ret = puts(str);
printf("len: %d\n", ret);
devuelve 0;
}