C++中cin、cin.get、cin.getline用法辨析

来源:互联网 发布:seo怎样 编辑:程序博客网 时间:2024/06/06 03:39
1、cin--c++最常用输入函数,基本用法:cin>>表达式1>>表达式2...
(1)、输入数字
  例如:int a,b;
    cin>>a>>b;
    ......
(2)、输入字符串
  例如:char a[20];
     cin>>a;
     cout<<a;
     输入:abcdefg
     输出:abcdefg
  注:cin输入字符串以空字符作为结束标志,包括空格、回车和制表符(TAB),一旦接收到这些符号,立即结束输入。
    输入:abc  defg
    输出:abc

2、cin.get
(1)、接收单个字符
    例如:char c;
       c=cin.get();
       cout<<c;
         输入:abcde
       输出:a
(2)、接收字符串,用法:cin.get(name,size)
    例如:char a[5]
      cin.get(a,5);
      输入:a bcdefg
      输出:a bc,接收四个字符加一个/0,可以接收包括空格的内容。
    注:(1)、输入字符串不超过限定大小:读取所有字符,直到回车符结束,并将回车符留在输入队列流中,并将被下一次输入操作读取。
    (2)、输入字符超过限定大小:读取size-1 个字符和一个/0,然后将剩下的字符以及回车符留在输入队列流中,并将被下一次输入操作读取。
    (3)、输入一个空行,回车符仍然留在输入队列流中,需要用clear()重置cin。
(3)、在某些编译器中作为使程序停下来显示输出结果,即cin.get(),等待用户输入回车符结束程序。相当于system("pause")。

3、cin.getline()--接收一个字符串,可以包含空格,以回车符作为结束标志。
   例如:char c[20];
     cin.getline(c,20);
                     cout<<c;
     输入:ab cd ef
     输出:ab cd ef
           注:(1)、输入字符串不超过限定大小:读取所有字符,直到回车符结束,并将回车符从输入队列流中删除,不影响下一次输入操作。
  (2)、输入字符超过限定大小:读取size-1 个字符和一个/0,剩余字符(包括'\n')留在输入队列流中,随即设置cin实效位(即if(!cin)的判断为真),关闭输入。其后的所有输入都无法得到任何东西,当然也无法得到输入缓冲区中剩余的字符串。但如果用clear()重置cin,其后的输入便可用并会得到遗留在输入缓冲区中的字符。
  (3)、输入一个空行,回车符从输入队列流中删除,所以空行是合法输入,且不会影响接下来的输入处理。
0 0
原创粉丝点击