精华内容
下载资源
问答
  • 2021-07-10 13:26:04

    1.cin>>

    1.1cin>>用法1:最基本,也是最常用的用法,输入一个数字:

    #include <iostream> 
    using namespace std; 
    main () 

    int a,b; 
    cin>>a>>b; 
    cout<<a+b<<endl; 
    }

    输入:2[Enter]3[Enter] 
    输出:5

    注意:>> 是会过滤掉不可见字符(如 空格 回车,TAB 等) 

    1.2cin>>用法2:接受一个字符串,遇“空格”、“TAB”、“回车”都结束

    #include <iostream> 
    using namespace std; 
    main () 

    char a[20]; 
    cin>>a; 
    cout<<a<<endl; 
    }

    输入:jkljkljkl 
    输出:jkljkljkl

    输入:jkljkl jkljkl       //遇空格结束 
    输出:jkljkl

    1.3cin总结

    cin在读取时忽略空格换行符等。发送给cin的输入被缓冲,只有在用户按下回车键后,整个字符序列将被发送给程序

    2.cin.get()

    2.1ch = cin.get()与cin.get(ch)与cin.get()

    1.假设 cin 是正被读入字符的 char 变量的名称:cin.get (ch);      ch = cin.get(); 

    2.1.1cin.get(无参数)

    1.cin.get(无参数)主要是用于舍弃输入流中的不需要的字符,或者舍弃回车。(书p81混合输入数字和字符串时用到了)

    2.如果程序正在使用 get 函数简单地暂停屏幕直到按回车键,并且不需要存储字符,则该函数也可以这样用:cin.get();(感觉相当于system("pause");)。(书p218程序清单7.7)

    2.1.2cin.get(ch);与ch = cin.get();

    使用cin.get(ch):

    char ch
    cin.get(ch);
    while (cin.fail() == false)
    {
    	cout << ch;
    	++count;
    	cin.get(ch);
    }

     使用ch = cin.get()

    int ch
    ch = cin.get();
    while (ch != EOF)
    {
    	cout << ch;
    	++count;
    	ch = cin.get( );
    }

                                                            cin.get(ch)与ch= cin.get()

    属性cin.get(ch)ch=cin.get()
    传递输入字符的方式赋给参数ch将函数返回值赋给ch
    用于字符输入时函数的返回值istream对象(执行bool转换后为true)int类型的字符编码
    到达EOF时函数返回值istream对象(执行bool转换后为false)EOF

     另外,与cin.get()相同,cin.get(ch)也可用于舍弃输入流中的不需要的字符,或者舍弃回车。(书p81混合输入数字和字符串时用到了)。

    2.2cin.get(字符数组名,接受字符数目)

    cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格

    #include <iostream> 
    using namespace std; 
    main () 

    char a[20]; 
    cin.get(a,20); 
    cout<<a<<endl; 
    }

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

    输入:abcdeabcdeabcdeabcdeabcde (输入25个字符) 
    输出:abcdeabcdeabcdeabcd              (接收19个字符+1个'\0')

     3.cin.getline();

    cin.getline()   // 接受一个字符串,可以接收空格并输出

    #include <iostream> 
    using namespace std; 
    main () 

    char m[20]; 
    cin.getline(m,5); 
    cout<<m<<endl; 
    }

    输入:jkljkljkl 
    输出:jklj

    接受5个字符到m中,其中最后一个为'\0',所以只看到4个字符输出;

    如果把5改成20: 
    输入:jkljkljkl 
    输出:jkljkljkl

    输入:jklf fjlsjf fjsdklf 
    输出:jklf fjlsjf fjsdklf

    //延伸: 
    //cin.getline()实际上有三个参数,cin.getline(接受字符串的名称,接受个数,结束字符) 
    //当第三个参数省略时,系统默认为'\0' 
    //如果将例子中cin.getline()改为cin.getline(m,5,'a');当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk

    当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法:

    #include<iostream> 
    #include<string> 
    using namespace std;

    main () 

    char m[3][20]; 
    for(int i=0;i<3;i++) 

    cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl; 
    cin.getline(m[i],20); 
    }

    cout<<endl; 
    for(int j=0;j<3;j++) 
    cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;

    }

    请输入第1个字符串: 
    kskr1

    请输入第2个字符串: 
    kskr2

    请输入第3个字符串: 
    kskr3

    输出m[0]的值:kskr1 
    输出m[1]的值:kskr2 
    输出m[2]的值:kskr3

    更多相关内容
  • c++ 中的 cin.get()函数

    千次阅读 多人点赞 2020-10-01 16:50:50
    #include <iostream> #include <sstream> #include <... ch = cin.get();//从标准输入接受一个字符 while(ch != ' ') //只要这个字符不是' '空格即可 { cout << ch <.

    cin.get作用:从标准输入吸收任何字符(包括回车和空格),优先吸收cin缓存(之前cin的残留内容)。 

    #include <iostream>
    #include <sstream>
    #include <fstream>
    using namespace std;
    int main()
    {
      char ch;
      ch =   cin.get();//从标准输入接受一个字符
      while(ch != ' ')        //只要这个字符不是' '空格即可
        {                        
          cout << ch << endl;   //ch不会放过任何字符,包括回车,但是输出一次,必须是回车后
          ch = cin.get();
        }
      cout << ch;                 //按键回车执行一次
      return 0;
    }
    

    与字符串输入一样,有时候使用 cin>> 读取字符也不会按我们想要的结果行事。

    当用cin>>读取数据时候,最后的换行符会残留在cin缓存中。

    例如,因为它会忽略掉所有前导白色空格,所以使用 cin>> 就不可能仅输入一个空格或回车符。除非用户输入了空格键、制表符之外的其他字符,否则程序将不可能通过 cin 语句继续执行(一旦输入了这样的字符,在程序可以继续下一个语句之前,仍然需要按回车键)。因此,要求用户“按回车键继续”的程序,不能使用 >> 运算符只读取按回车键的行为。

    在这些情况下,cin 对象有一个名为 get 的内置函数很有帮助。因为 get 函数是内置在 cin 对象中的,所以可称之为 cin 的一个成员函数。get 成员函数读取单个字符,包括任何白色空格字符。如果程序需要存储正在读取的字符,则可以通过以下任意一种方式调用 get 成员函数。

    在这两个例子中,假设 cin 是正被读入字符的 char 变量的名称:

    cin.get (ch);
    ch = cin.get();

    如果程序正在使用 get 函数简单地暂停屏幕直到按回车键,并且不需要存储字符,则该函数也可以这样调用:

    cin.get();

    请注意,在所有这 3 个编程语句中,get 函数调用的格式实际上是一样的。首先是对象的名称,在此示例中它是 cin。然后是一个句点,其后是被调用的成员函数的名称,在这里当然就是 get。语句的末尾是一组括号和一个表示结束的分号。这是调用任何成员函数的基本格式,如图 1 所示。


    成员函数调用的基本格式
    图 1 成员函数调用的基本格式


    下面的程序演示了使用 get 成员函数的所有 3 种方式:

     
    1. // This program demonstrates three ways to use cin.get()
    2. // to pause a program.
    3. #include <iostream>
    4. using namespace std;
    5.  
    6. int main()
    7. {
    8. char ch;
    9. cout << "This program has paused. Press Enter to continue.";
    10. cin.get(ch);
    11. cout << "It has paused a second time. Please press Enter again."; ch = cin.get();
    12. cout << "It has paused a third time. Please press Enter again.";
    13. cin.get();
    14. cout << "Thank you! \n";
    15. return 0;
    16. }

    程序输出结果:

    This program has paused. Press Enter to continue.
    It has paused a second time. Please press Enter again.
    It has paused a third time. Please press Enter again.
    Thank you!

    注意,在 IDE 中运行程序时,当程序终止,则输出窗口会关闭,而 cin.get 函数可用于保持输出屏幕可见。

    混合使用 cin>> 和 cin.get

    将 cin >> 与 cin.get 混合使用可能会导致烦人且难以发现的问题。请看下面的代码段示例:

    char ch;    //定义一个字符变量
    int number; //定义一个整型变量
    cout << "Enter a number: ”;
    cin >> number;   // 读取整数
    cout << "Enter a character: ";
    ch = cin.get() ;   // 读取字符
    cout << "Thank You!\n";

    这些语句允许用户输入一个数字,而不是一个字符。看来第 6 行的 cin.get 语句已经被跳过了。这是因为 cin>> 和 cin.get 使用略有不同的技术来读取数据。

    在示例代码段中,当执行第 4 行时,用户输入一个数字,然后按回车键。假设输入的是数字 100。按回车键会导致一个换行符('\n')存储在键盘缓冲区数字 100 之后,如图 2 所示。


    键盘缓冲区存储和读取示意图
    图 2 键盘缓冲区存储和读取示意图


    当第 4 行中的 cin>> 语句读取用户输入的数据时,它会在遇到换行符时停止。换行字符未被读取,而是仍保留在键盘缓冲区中。从键盘读取数据的输入语句只在键盘缓冲区为空时等待用户输入值,但现在不为空。

    当第 6 行中的 cin.get 函数执行时,它开始从先前输入操作停止的键盘缓冲区读取,并发现了换行符,所以它无须等待用户输入另一个值。这种问题最直接的解决办法是使用 cin.ignore 函数。

     

    #include <iostream>
    #include <string>
    #include <fstream>
    using namespace std;
    int main()
    {
      char ch;
      int number;
      cout << "Enter a number: ";
      cin >> number;
      cout << "Enter a character: ";
      ch = cin.get();
      while((ch=cin.get()) != '\n')
        continue;                        //这个程序会不断从cin缓存中读取字符放入ch中,直到遇到回车'\n',所以最后ch还是回车符
      cout << "Thank you!\n";
      cout <<"print the  ch:" << ch;
        if(ch == '\n')
          cout << "ch == '\n'";
     
          return 0;
    }
    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
      char ch;
      ch = cin.get();
      cout << ch << endl;
     
      while(cin.get() != '\n')  //cin.get()会从缓存提取一个字符,如果有用则用,不用则丢弃
        cout << (char)(cin.get());
      return 0;
    }
    

    关于C++中cin()和cin.get()的用法,问题如下

    char a[20];
    int x;
    cout<<"输入x";
    cin>>x;
    cout<<"输入字符数组:"
    cin.get();
    gets(a);
    为什么要加cin.get()????

    优质回答:

           get()是对象cin的一个成2113员函数, 用于吸收5261字符, 这里可以吸收掉回车。4102 否则回车也会被存储到字符数1653组a里面。 这就相当于C程序中的getchar(), 懂了吗?

    这里用一个getchar()和cin.get()效果一样, 不信你可以试一下。。

    追问

    我看到百度上有说cin>>x;的cin函数是丢弃回车的,也就是输入x之后并没有在输入流保存回车,那为什么还要用get()吸收回车?

    追答

    是的, 但是如果先回车, 想要再输入字符串的话, 程序就终止了对吧。。 你没有理解gets的用法, 如果遇到回车, gets就起不到应有的作用了。。
    
    你可以把a输出, 自己试一下有什么区别。。。 这段代码应该是某本书上的对吧, 作为一段程序,
    健壮性是非常重要的。。

     

     

    展开全文
  • 1.cin>>用法a:最基本的流输入用法,接受一个数字或字符,自动跳过输入的空格。用法b:接受一个字符串,但是遇到除开头外的空格则...} 2.cin.get()用法a:无参数,一次从输入行中提取一个字符,包括空格和回车...

    1.cin>>

    用法a:最基本的流输入用法,接受一个数字或字符,自动跳过输入的空格。

    用法b:接受一个字符串,但是遇到除开头外的空格则会终止输入。

    #include

    using namespace std;

    int main()

    {

    char a[100];

    cin>>a;

    cout<

    return 0;

    }

    0b7ec14906100d12859ff60d9f206a14.png

    2.cin.get()

    用法a:无参数,一次从输入行中提取一个字符,包括空格和回车键都作为一个输入字符。

    #include

    using namespace std;

    int main()

    {

    char a;

    a=cin.get();

    cout<

    展开全文
  • 文章目录cin用法cin.getline()用法getline()用法cin.get()的用法注意的问题 cin用法 用法:接收一个字符串,一个数字或一个字符,遇“空格”、“TAB”、“回车”就结束 #include <iostream> using namespace ...

    cin用法

    用法:接收一个字符串,一个数字或一个字符,遇“空格”、“TAB”、“回车”就结束

    #include <iostream>
    using namespace std;
    int main()
    {
    	char st[100];
    	while (cin >> st)
    		cout<<st<<endl;
    	return 0;
    }
    

    在这里插入图片描述

    cin.getline()用法

    用法:接收一个字符串,可以接收空格并输出

    #include <iostream>
    using namespace std;
    int main()
    {
    	char m[20];
    	cin.getline(m, 5);
    	cout << m << endl;
    	return 0;
    }
    

    在这里插入图片描述
    接收5个字符到m中,其中最后一个为’\0’,所以只看到4个字符输出;
    总结:
    1、cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符);
    2、当第三个参数省略时,系统默认为’\0’;
    3、如果将例子中cin.getline()改为cin.getline(m,5,‘a’);当输入jlkjkljkl时输出jklj,输入jkaljkljkl时,输出jk

    getline()用法

    用法:接收一个字符串,可以接收空格并输出,需包含头文件,但是不能接受字符数组,如果把代码中的string改成char.则会报错。

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
    	string str;
    	while(getline(cin, str))
    	cout << str << endl;
    	return 0;
    }
    

    在这里插入图片描述

    cin.get()的用法

    #include<iostream>
    #include<string>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int main()
    {
    	char s[100];
    	cin.get(s, 10);
    		cout<<s<<endl;
    	return 0;
    }
    

    在这里插入图片描述
    注意:cin.get()对string不适用,用法大致与cin.getline()类似。

    注意的问题

    1、cin.getline()属于iostream流,而getline()属于string流,是不一样的两个函数

    2、当同时使用cin>>,getline()时,需要注意的是,在cin>>输入流完成之后,getline()之前,需要通过
    str="\n";
    getline(cin,str);
    的方式将回车符作为输入流cin以清除缓存,如果不这样做的话,在控制台上就不会出现getline()的输入提示,而直接跳过,因为程序默认地将之前的变量作为输入流。
    例如:

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int age;
        cout << "请输入你的年龄: ";
        cin >> age;
        cout << "你的年龄是: " << age << "\n";
        string mystr;
        cout << "What's your name? " << endl;
        mystr = "\n";
        getline(cin, mystr);
        getline(cin, mystr);
        cout << "Hello," << mystr << "\n";
        return 0;
    }
    

    在这里插入图片描述
    若不加:mystr="\n";
    getline(cin,mystr);则会出现下列情况
    在这里插入图片描述
    3.c++中要使用gets和puts,则要puts_s()和gets_s(),对string不适用。
    以上可能有错,请多指教

    展开全文
  • cin.get( ):可以接收空格、Tap键且以回车符为结束符;  一:可输入单个字符  格式:  char ch;  ch=cin.get( );/cin.get(ch);  二:可输入字符串  格式:  cin.get(字符数组名,元素个数) ③...
  • C++ cin.get用法(详解版)

    千次阅读 2019-04-25 00:10:47
    与字符串输入一样,有时候使用 cin>> 读取字符也不会按我们想要的结果行事。 例如,因为它会忽略掉所有前导白色空格,所以使用 cin>> 就不可能仅输入一个空格或回车符。除非用户输入了空格键、制表符...
  • 笔者由于自己忘记了cin函数怎么用,所以这里趁自己复习C++的空子正好可以做做记录。 1、cin>> 用法1:最基本,也是最常用的用法,输入一个数字: #include <iostream> using namespace std; ...
  • 一:getline() #include <iostream> #include <string> int main () { std::string name;... "Please, enter your full name: ";... std::getline (std::cin,name); std::cout <&...
  • cincin.get()、cin.getline()、getline()、gets()、getchar() cin>> 功能一:接收单个数字、字符 #include <iostream> using namespace std; int main() { int a, b; char c, d; cin >> ...
  • c++中的cin.getline(),cin.get(),getline()

    千次阅读 2015-07-29 15:06:43
    C++中有两个getline函数,这两个函数分别定义在不同的头文件中 1、getline()是定义在头文件中,功能是取一行字符串,读到换行符\n结束,并且抛弃换行符,如果需要读取字符,则接着下一行读取。  getline(cin,...
  • cin.get() 接收一个字符串,结束符默认为回车键 getlin() 接收一个字符串,可以接收空格并输出,需包含“#include” 1、cin>> cin是将标准输入流写入缓冲区,即从键盘输入。 cin涉及的头文件是#include. #...
  • cin.getline() 用法:接收一行字符串,可以接收空格并输出,可以控制接受的字符范围 #include <iostream> using namespace std; main () { char m[20]; cin.getline(m,5); cout<<m<<endl; } ...
  • 不知道怎么转发过来,尴尬。。。  学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教。...1、cin2、cin.get()3、cin.ge...
  • 初学C++的同学们,一定会最先遇到cin和cout,这是C++编程语言中的标准输入输出流对象,包含在文件中。cin主要用于从标准输入读取数据,这里的标准输入是指终端的键盘。 当我们从键盘中输入字符串的时候需要敲一下...
  • 一、get()函数 ...cin.get()用来从指定的输入流中提取一个字符(包括空白字符),函数的返回值就是读入的字符,若遇到输入流的文件结束符,则函数返回值为EOF(EOF是在iostream头文件中定义的符号常
  • 关于C++中cincin.get(),cin.getline(),getline()笔记 C++处理字符串方式有两种,一种是来自C语言(C-style string);另一种基于string类库的方法。 C风格字符串必须以空字符(null character)结尾,空字符被...
  • 一、cin.clear()、cin.sync() cin.clear()是用来更改cin的状态标示符的。 cin.sync()是用来清除缓存区的数据流的。 如果标示符没有改变那么即使清除了数据流也无法输入。所以两个要联合起来使用。例如: ...
  • 2)、cin.get() 3)、cin.getline() 4)、getline() 5)、gets() 1、cin&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; 用法1:最基本,...
  • cin>> cin是使用空白(空格、制表符和换行符)来确定字符串的结束位置,并清除遇到的空白缓冲;而字符串的开始位置是通过清除开头(若有)的空白缓冲来确定的。 假设在键盘键入:\t\t\tAlistair \tDreeb<Enter&...
  • getline()函数: getline()函数是一个比较常见的函数。根据名字直接望文生义,就知道这个函数是来完成读入一行数据。 getline是C++标准库函数;但不是C标准库函数,getline会生成一个包含一串从输入流读入的字符的...
  • 用法3:cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足. 这个我还不知道怎么用,知道的前辈请赐教; 3、cin.getline() // 接受一个字符串...
  • cin.ignore()的用法

    2020-05-31 22:22:05
    cin.ignore()函数中有两个参数,分别为数值型的a 和 字符型的 ch ,即cin.ignore( a, ch )。它表示从输入流 cin 中提取字符,提取的字符被忽略,不被使用。而每抛弃一个字符,它都要进行计数和比较字符:如果计数值...
  • 所在头文件:stdio.h; 语法:scanf(&amp;quot;&amp;amp;lt;格式化字符串&amp;amp;gt;&amp;quot;, &amp;amp;lt;参量表&amp;amp;gt;),读字符用%c,读字符串用%s。 注意:scanf在读取非...
  • cin.clear cin.sync 等函数用法

    万次阅读 多人点赞 2012-12-18 23:14:32
     一、cin.clear()、cin.sync()  cin.clear()是用来更改cin的状态标示符的。  cin.sync()是用来清除缓存区的数据流的。 如果标示符没有改变那么即使清除了数据流也无法输入。所以两个要联合起来使用。...
  • C++: cin.get()与cin.getline()

    千次阅读 2016-03-03 19:58:33
    C++: cin.get()与cin.getline()标签: C++ cin.get cin.getlineby 小威威C++继承了C的字符串,定义于的头文件中。在下文中,对C中字符串简称为Cstring,对C++中字符串简称为string。字符串的输入有两种类型:一种是...
  • 缓冲区:当输入一个串时,如果意外停止。则遇到第二次请求输入操作时,程序将不理会输入操作而直接从缓冲区读入字。一、cin 头文件(iostream)...二、cin.get(字符数组名,长度,结束符号) 头文件 (iostream)...
  • 1. cin 和 scanf : 只能接收一字符串遇到,空格,Tab,回车都结束 #include&lt;iostream&gt; #include&lt;stdio.h&gt; using namespace std; int main() { char str[20]; cin &gt;&gt...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,837
精华内容 4,734
关键字:

cin.get()函数头文件