La diferencia entre Scanfor y cin

1.cin es un objeto de tipo C, el tipo es basic_istream y scanf es una función con parámetros variables.

La clase a la que pertenece 2.2.cin sobrecarga el operador >; gt, lo que facilita la escritura, como

double d cin gt; > Scanf es diferente.

Double d scanf("lf", ampd);

Parece un poco problemático.

Además, cin es más seguro y no provocará un desbordamiento de la memoria.

char c;scanf("lf", ampc); // En este momento, se requieren 8 bytes de espacio, pero solo se proporciona uno y la memoria se desborda.

Cin es más seguro.

char c; CIN gt; gtc; //Solo caracteres de entrada, sin desbordamiento.

3. Desde una perspectiva de bajo nivel, cin en C y scanf en lenguaje C usan stdin como fuente de entrada, pero cin y scanf usan buffers diferentes. Puede configurar el búfer * * * para compartir a través de la función sync_with_stdio() en el archivo de encabezado de ios.

C también puede cambiar la fuente de entrada, pero es muy complicado.

De hecho, C encapsula stdin y utiliza flujo e iterador para cambiar el concepto de flujo, y scanf de C opera directamente stdin.

Función de entrada de formato de lenguaje 4.cin

y

C

Precauciones de uso

(Nota: El código fuente de este artículo no contiene archivos de encabezado; edítelo usted mismo durante el experimento)

Lea y opere para que realmente pueda comprender el truco:

5.

Función de escaneo ()

:

Las más utilizadas son

(1)

scanf("s " , a ); //a

es un puntero a una cadena;

Ejemplo:

int main(){

char a[ 20];

scanf("s ", a);

printf("s ", a); //

Secuencia de caracteres de salida

Caracteres en p>

a

Devuelve 0

}

Nota

1, este método de obtener una cadena puede ir precedido de un retorno de carro.

\n '

, ¡atención! Puedes intentarlo. Entrada

Cuando presionas la tecla Enter al frente y luego ingresas un conjunto de caracteres, la salida siguen siendo los caracteres que generas.

2. Después de intentar subir al coche, vuelve a correr y luego te añades delante.

n

Espacio, luego ingresa un consecutivo.

Personajes,

Mira lo que pasa. Notarás que ignora todos los espacios anteriores.

Si quieres,

por supuesto, puedes

usar expresiones regulares o usar

gets();

p>

Por ejemplo:

Obtener (a);

De esta forma también se pueden registrar los espacios que ingreses.

Inténtelo de nuevo

Ingrese una longitud continua de caracteres, seguido de un espacio, y luego ingrese:

Por ejemplo, ingrese el nombre de una persona.

Cuando la palabra "

Bill

Gates

" encontrará que la salida es solo

Bill

p>

y

Gates

Así que al diablo con escribir nombres y escribir

Noodles también, es mejor usarlos.

obtiene();

Función.

(2)scanf("c ", ampa); //

Presta atención al símbolo de dirección

Ejemplo:

int main (){

char a;

scanf("c", ampa);

printf("c", a);

Caracteres de salida

Caracteres en un

Devuelve 0;

}

Nota:

Si hay un retorno de carro al obtener caracteres,

absorbelo.

Puedes probar esto,

Ejecutar el programa anterior,

Ingresar al auto una vez,

Mira con atención, dejó algunos La línea está en blanco.

(Ingresaste la primera línea, la segunda línea es

Función de impresión

Salir

a

valor)

, comprende el misterio.

¿Has terminado?

(3)

scanf("d ", ampa);

Ejemplo

int main(){

int a;

scanf("d", ampa);

printf("d", a); //

Conformación de salida

El valor en a

;

devuelve 0;

}

Nota: Esta entrada es la misma como (

1

), el retorno de carro anterior se ignorará automáticamente.

\n '(

En realidad es un

Código estándar de intercambio de información estadounidense

yarda

)