Entrada común de C++, cin, cin.get(), getline(cin, str)

  1. cin
    cin>>val;
    1. Cuando lea cin, ignore los espacios, tabulaciones y saltos de línea anteriores, y deténgase cuando encuentre un espacio.
    2. cin lee según el tipo de la siguiente val

    Si val es int o double, lee un número.
    Si val es char, solo
    se leerá un carácter. Si val es una cadena, leerá una cadena, pero se detendrá cuando encuentre un espacio, por lo que no puede leer una cadena con espacios en el medio, como una oración. Solo se puede leer una palabra.

  2. cin.get()
    Dos usos, ch está entre paréntesis, o devuelve un ch
    para leer un carácter , sin importar qué carácter, incluidos espacios, retornos de carro, por lo que puede usarse para descartar un caráctercin.get()

    instream& cin.get(char ch);
    //用法
    char ch;
    cin.get(ch);
    cin.get(ch).get(ch);
    
    char cin.get();
    //用法
    char ch;
    ch=cin.get();
    
  3. getline(cin,string)
    La cadena utilizada para la lectura no es c_str, sino la cadena de C++; deténgase cuando se encuentre un carácter de nueva línea '\n'. Y el salto de línea se lee y se desecha, así que no se demore la próxima vez y continúe getline(cin,str)

    string str;
    getline(cin,str);
    

    Debido a que está leyendo una línea, puede contener espacios, etc.. Si desea dividirlo en otros por espacios, puede usar la clase stringstream para dividir por espacios.

    stringstream ss(str) //根据类型>>出
    string s1;
    ss>>s1;
    ......
    
  4. cin.getline(c_str, n)No se recomienda usar
    esto para leer cadenas C. El parámetro anterior debe ser una matriz de caracteres, y n debe ser mayor que la longitud de la línea que se va a leer + 1. De lo contrario, aunque la lectura tendrá éxito esta vez, falle la próxima vez y presione Entrar Aún en el flujo de entrada, necesita agregar cin.get() una vez;

Supongo que te gusta

Origin blog.csdn.net/qq_41253960/article/details/124383642
Recomendado
Clasificación