C++常用输入,cin, cin.get(), getline(cin,str)

  1. cin
    cin>>val;
    1、cin读的时候忽略前面的空格、tab、换行,一遇到空格就停。
    2、cin根据后面的val的类型读取

    val是int 或double,则读取数字
    val是char,就只读一个char
    val是string则读取string,但是遇到空格就停了,所以不能读取中间带空格的字符串,如一个句子,只能读一个单词。

  2. cin.get()
    两种用法,ch在括号内,或者返回一个ch
    读取一个字符,无论什么字符,包括空格、回车,所以可以用来舍弃一个字符cin.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)
    读取字符串用的,不是c_str,是c++的string; 遇到换行符’\n’停。并且换行符被读了然后扔了,所以不耽误下次直接继续getline(cin,str)

    string str;
    getline(cin,str);
    

    因为是读取一行,所以就可以包含空格啥的了,如果想要按空格再分成其他的,就可以用stringstream类,按空格分

    stringstream ss(str) //根据类型>>出
    string s1;
    ss>>s1;
    ......
    
  4. cin.getline(c_str, n)不建议使用
    这是C字符串读取的,前一个参数必须是字符数组,n必须大于要读的那行的长度+1,不然虽然这次会读成功,下次就会失败,而且回车还在输入流中,需要加一次cin.get();

猜你喜欢

转载自blog.csdn.net/qq_41253960/article/details/124383642