精华内容
下载资源
问答
  • 在c++中,什么情况下使用cin.get()和ch=cin.get,什么情况下直接使用cin,求解答!
  • cin cin.get cin.getlin

    2018-11-01 17:10:34
    cin.get(),cin.getline() :但是,很好,C++的这两个函数帮我们解决了这一问题,它们都表示每次读取一行字符串输入。 不过,这两个函数也有一些区别: cin.getline()和cin.get()。这两个函数都读取一行输入,直到...

    cin:遇到空格,回车或者制表符就会结束输入,这样就导致了我们不能输入一个带有空格的字符串。

    cin.get(),cin.getline() :但是,很好,C++的这两个函数帮我们解决了这一问题,它们都表示每次读取一行字符串输入。

    不过,这两个函数也有一些区别:

    cin.getline()和cin.get()。这两个函数都读取一行输入,直到达到换行符。然而,随后cin.getline()将丢弃换行符,而cin.get()将换行符保留在输入序列中。

    1.面向行的输入:getline()
    MSDN中的用法:


    istream::getline
    istream& getline( char* pch, int nCount, chardelim= '\n' );

    istream& getline( unsigned char* puch, int nCount, char delim = '\n' );

    istream& getline( signed char* psch, int nCount, char delim = '\n' );


            getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。要调用这种方法,可以使用cin.getline()。该函数有两个参数。第一个参数是用来储存输入行的数组名称,第二个参数是要读取的字符数。如果这参数为20,则函数最多读取19个字符,余下的空间用于储存自动在结尾处添加的空字符。getline()成员函数在读取指定数目的字符或者遇到换行符时停止读取。

            例如,假设要使用getline()将姓名读入到一个包含20个元素的name数组中。可以使用这样的函数调用:

    cin.getline(name, 20);

    这将把一行读入到name数组中——如果这行包含的字符不超过19个。

    /******************************************
        描述: cin, cin.getline(), cin.get()区别
        作者: Elohim
    ******************************************/
    #include <iostream>
    using namespace std;
     
    int main()
    {
        char name[20];
     
        cin.getline(name,20);
        cout<<"name : "<<name<<endl;
     
        return 0;
    }
    getline()函数每次读取一行。它通过换行符来确定尾部,单不保存换行符。相反,在储存字符串时,它用空字符('\0')来替换换行符。


    2.面向行输入:get()
    MSDN中的用法:

    get();     
    get( char*, int, char );     
    get( char& );     
    get( streambuf&, char );

            get()不读取并丢弃换行符,而是将其留在输入队列中。

            例如,cin.get(name, 10); cin.get(blog, 10); 连续两个cin.get()。就出问题了。

    由于第一次调用后,换行符将留在输入队列中,因此第二次调用时看到的第一个字符就是换行符。因此get()认为已经达到行尾,而没有发现任何读取内容。

    如果不借助帮助,get()将不能跨过该换行符。

            幸运的是,cin.get();不带任何参数,可以读取下一个字符(即使是换行符)。所以我们可以改成如下:

    cin.get(name,10);

    cin.get();

    cin.get(blog,10);

    这样问题就得到了解决。

    /******************************************
        描述: cin, cin.getline(), cin.get()区别
        作者: Elohim
    ******************************************/
    #include <iostream>
    using namespace std;
     
    int main()
    {
        char name[100],blog[100];
     
        cin.get(name,10);
        cin.get();
        cin.get(blog,10);
     
        cout<<"name : "<<name<<endl;
        cout<<"blog : "<<blog<<endl;
     
        return 0;
    }

    --------------------- 
    作者:EIohim 
    来源:CSDN 
    原文:https://blog.csdn.net/elohims/article/details/23560743 
     

    展开全文
  • cin.get()、cin.get

    2019-03-05 19:09:38
    cin.get() string s; char s1; cin&gt;&gt;s; s1 = cin.get(); 输入:jljkljkl 输出:j cin.get char a[20]; cin.get(a,20); 输入:jkl jkl jkl 输出:jkl jkl jkl 输入:...

    cin.get() 

    string s;
    char s1;
    cin>>s;
    s1 = cin.get();

     输入:jljkljkl
    输出:j

    cin.get

    char a[20];
    cin.get(a,20);
    

    输入:jkl jkl jkl
    输出:jkl jkl jkl

    输入:abcdeabcdeabcdeabcdeabcde 
    输出:abcdeabcdeabcdeabcd (19个+\0---空字符)

    展开全文
  • cin.get(字符数组名,接收长度,结束符) cin.get() 操作遇到结束符(默认为enter)停止读取,但并不会将结束符从缓冲区丢弃 cin.getline(字符数组名,接收长度,结束符) cin.get()当输入的字符串超长时,不会引起cin...

    cin.get(字符数组名,接收长度,结束符)

    cin.get() 操作遇到结束符(默认为enter)停止读取,但并不会将结束符从缓冲区丢弃

    cin.getline(字符数组名,接收长度,结束符)

    cin.get()当输入的字符串超长时,不会引起cin函数的错误,后面若有cin操作,会继续执行,只是直接从缓冲区中取数据。但是cin.getline()当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行

    cin.ignore()

    这个函数用来丢弃输入缓冲区中的字符,第一参数定义一个数,第二个参数定义一个字符变量。下面解释一下函数是怎样执行的:函数不停的从缓冲区中取一个字符,并判断是不是a,如果不是则丢弃并进行计数,当计数达到Count退出,如果是则丢弃字符退出。例:cin.ignore(5, ‘a’); 函数将不断从缓冲区中取一个字符丢弃,直到丢弃的字符数达到5或者读取的字符为’a’。

    参考网址:
    https://blog.csdn.net/a3192048/article/details/80303547

    展开全文
  • cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别。cin.get()每次读取一整行并把由Enter键生成的换行符留在输入队列中,比如: 代码如下:#include ...
  • cin.get() cin.getline() cin.ignore() 转载于:https://www.cnblogs.com/rensandao/p/8990003.html

    cin.get()

    cin.getline()

    cin.ignore()

     

    转载于:https://www.cnblogs.com/rensandao/p/8990003.html

    展开全文
  • cin.get(ch)与ch = cin.get()的区别

    千次阅读 2018-12-11 11:01:36
    cin.get(ch)和ch = cin.get()的区别 ch = cin.get() ;//先调用cin.get()函数,然后将该函数的返回值赋给ch,语句的结果为ch的值。 cin.get(ch);//在到达EOF值时,不会赋值给ch,ch只是接收输入字符。 二者的区别...
  • ch = cin.get()和cin.get(ch)

    2018-08-07 00:37:10
    ch = cin.get(): cin.get()在没达到文本尾的时候,返回获取的字符,在到达文本尾的时候,返回EOF。 cin.get(ch): cin.get()返回的值是istream,可强转为bool型,未到达文件尾是返回true,到达文件尾返回false....
  • 1.cin输入数据 2. 2.cin.getline(char * , size)和cin...3. 每次读取一个字符:cin.get(void)、cin.get(char) 、上文第1条cin>>ch、上文第2条也可以(是以字符串的形式) 4.怎么输入字符串给string类的实例 ...
  • cin.get( ):可以接收空格、Tap键且以回车符为结束符;  一:可输入单个字符  格式:  char ch;  ch=cin.get( );/cin.get(ch);  二:可输入字符串  格式:  cin.get(字符数组名,元素个数) ③...
  • 首先,cin和cin.get()遇到结束符都会停止读取,并且将结束符留在缓存区。 对cin来说,tab、空格、回车都是结束符,cin.get默认结束符是回车并且可以自定义结束符。 1、cin #include<iostream> using namespace...
  • 的编程练习时,注意到了cin.get(ch)和ch=cin.get()在用法上有一点特别之处. 先说结论: cin.get(ch)和ch=cin.get()在一定情况下可以相互替换. 要特别注意的是优先级. 赋值运算符("=")的优先级小于逻辑运算符("&&...
  • cin、cin.get()、cin.getline()、getline()的区别

    万次阅读 多人点赞 2018-05-14 15:51:30
    测试平台g++ 5.4.0和VS2015社区版。...正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。 比如下面的例子: voidtest_i...
  • 1、cin、带参数与不带参数cin.get()的返回值问题 cin&gt;&gt;ch、和带参数的cin,get()返回的是cin对象,只在需要bool类型数据的地方返回bool类型的数据;而不带参数的cin.get()返回值是整型的字符编码,也...
  • 1、cin、带参数与不带参数cin.get()的返回值问题 cin&amp;gt;&amp;gt;ch、和带参数的cin,get()返回的是cin对象,只在需要bool类型数据的地方返回bool类型的数据;而不带参数的cin.get()返回值是整型的字符...
  • cin.get

    2017-05-27 19:33:00
    cin.get get()函数是cin输入流对象的成员函数,它有3种形式:无参数的,有一个参数的,有3个参数的。 1) 不带参数的get函数 其调用形式为 cin.get() 用来从指定的输入流中提取一个字符(包括空白...
  • ch = cin.get() ; //先调用cin.get()函数,然后将该函数的返回值赋给ch...二者的区别在一些经典的C++书籍中被总结成下表形式:cin.get(ch)与cin.get()属性 cin.get(ch)ch = cin.get()传递输入字符的方式赋值给参...
  • cin>>ch 读取字符将忽略空格,换行符,和制表符,而cin.get()则不 cin.get(ch)成员函数调用通过返回转换为false的bool值来指出已到达EOF,而cin.get()成员函数调用则通过返回EOF值来指出已到达EOF,EOF是文件...
  • cin.get()返回输入中的下一个字符。 cin.get(ch)返回一个对象,而不是读取的字符。 转载于:https://www.cnblogs.com/xueyoubao/p/9989761.html
  • #cin/cin.get()/cin.getline区别 char ch[16]; cin>>ch 输入遇到空格就会停止,后面的将不写入ch中,回车结束输入。 ch=cin.get()接收一个字符,会将键盘缓存区中的回车或者空格识别存入。 cin.getline(ch,16)...
  • 把ch2=cin.get()改为cin.get(ch2),一样输入a,输出结果却是这样,是什么原理让这两者输出结果不一样,求解答![图片说明](https://img-ask.csdn.net/upload/201910/15/1571097564_676233.png) 还有下图中的赋值给...
  • 1、cin.get(str, Size) 读取Size个字符或直到遇到\n时止,并且将\n留在输入缓冲区中,其将被下一个读取输入的操作捕获。 2、cin,get() cin.get( )的一个重载函数:使用不带任何参数的cin.get()可读取缓冲区的下一个...
  • cin.get() 用法1: cin.get(字符...
  • [C++] cin.get(),cin.getline(),cin.clear()使用技巧

    千次阅读 多人点赞 2018-11-08 20:22:14
    cin是用于输入的istream类的... ch、cin.get(ch)、ch = cin.get()、cin.getline()等多种方式,看似简单,但其中的细节却非常重要,理解了这些cin的特点,那么cin在一些特殊场景下的用法也就一目了然了。如将cin用作...
  • cin.getline()和cin.get()都是对输入的面向行的读取,即以此读取整行而不是单个字符或者数字。 cin.get()每次读取整行并把enter键生成的换行符留在输入队列中。 cin.getline()每次读取整行并把enter键生成的换行符...
  • cin、gets、cin.getline、cin.get的比较 cin.sync()清空缓存区 cin 结束标志:空格、table 可接受数据 结束标志/输入分割 提交标志 可空否 cin 空格、table、回车 回车 不可空 gets char[],空格、table ...
  • 今天学习了cin ,cin.getline(name,n),cin.get(name,n),cin.get() cin为面向单词输入,遇到空格、换行符时结束输入 cin.getline(name,n)和cin.get(name,n)为面向行的输入,name为输入的数组,n为数组的长度,...
  • C++输入cin,cin.get(),cin.getline()详细比较及例子

    万次阅读 多人点赞 2016-01-25 13:13:39
    本文主要介绍C++输入的cin,cin.get(),cin.getline()的基本用法,介绍他们之间的区别和例子。最后给出一种以任意字符做分隔符的的输入方法。
  • 1-cin.getline() 一行一行的输入, char ch[50]; cin.getline(ch,50);...cin.get(ch,SIZE);//输入一个字符数组 cin.get(ch);//只有一个字符 上述这三个都不会丢弃换行符,可以使用cin.getline()来验证这一

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,423
精华内容 1,369
关键字:

cin.get