zoukankan      html  css  js  c++  java
  • c++中cin的基本使用方法

    一、最主要的使用方法cin>>

              接收一个数字、字符、字符串。遇“空格”、“TAB”、“回车”都结束

              比如:        

    <span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
    using namespace std;
    main ()
    {
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
    }</span></span>
    输入:5[回车]6[回车]
    输出:11
    (当中回车可替换成空格或者TAB键)
    <span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
    using namespace std;
    main ()
    {
    char a[20];
    cin>>a;
    cout<<a<<endl;
    }</span></span>
    输入:kldjfllskjf
    输出:kldjfllskjf

    输入:jkljkl jkljkl //遇空格结束
    输出:jkljkl
    二、cin.get()

    使用方法1: cin.get(字符变量名)能够用来接收字符

    ch=cin.get(); 或者cin.get(ch);(两种形式等价)

    <span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
    using namespace std;
    main ()
    {
    char ch;
    ch=cin.get(); //或者cin.get(ch);
    cout<<ch<<endl;
    }</span></span>
    输入:hglssf

    输出:h

    使用方法2:cin.get(字符数组名,接收字符数目)用来接收一行字符串,能够接收空格,enter键结束输入

    <span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
    using namespace std;
    main ()
    {
    char a[20];
    cin.get(a,20);
    cout<<a<<endl;
    }</span></span>
    输入:jkl jkl jkl
    输出:jkl jkl jkl

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

    使用方法3: cin.get(字符数组名,接收字符数目,结束符)

    读取一行字符串,遇结束符停止读入

    <span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
    using namespace std;
    main ()
    {
    char a[20];
    cin.get(a,20,'g');
    cout<<a<<endl;
    return 0;
    }
    </span></span>
    输入:kjhkjlhgjlajdflj

    输出:kjhkjlh

    注意:当结束符为“ENTER”键时。即默觉得上述的使用方法2

    可是两种情况下都不会丢弃结束符:

    比如:

    接收字符情况:

    <span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
    using namespace std;
    int main()
    {
      char c1, c2;
       cin.get(c1);
       cin.get(c2);
        cout<<c1<<" "<<c2<<endl; // 打印两个字符
        cout<<(int)c1<<" "<<(int)c2<<endl; // 打印这两个字符的ASCII值
        return 0;
    }
    </span></span>

    输入:

    a[Enter]

    输出:

    a

    97 10

    【分析】会发现仅仅运行了一次从键盘输入,显然第一个字符变量取的’a',第二个变量取的是Enter(ASCII值为10),这是由于该函数不丢弃上次输入结束时的Enter字符,所以第一次输入结束时缓冲区中残留的是上次输入结束时的Enter字符。

    接收字符串情况:
    <span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
    using namespace std;
    int main ()
    {
      char ch, a[20];
      cin.get(a, 5 , 'd');
      cin>>ch;
      cout<<a<<endl;
      cout<<(int)ch<<endl;
      return 0;
    }
    
    </span></span>

    输入:

    12345[Enter]

    输出:

    1234

    53

    【分析】第一次输入超长,字符串按长度取了"1234",而’5′仍残留在缓冲区中。所以第二次输入字符没有从键盘读入,而是直接取了’5′。所以打印的ASCII值是53(’5′ASCII)

    输入

    12d45[Enter]

    输出:

    12

    d

    【分析】第二次输出为d,说明自己定义结束符时不丢弃缓冲区中的结束符

    三、getline()的使用方法

    使用方法1:cin.getline(数组名,长度,结束符)大体与 cin.get(数组名。长度。结束符)类似。

    差别在于:

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

    #include<iostream>
    usingnamespace std;
    int main ()
    {
    char ch, a[20];
    cin.getline(a, 5);
    cin>>ch;
    cout<<a<<endl;
    cout<<(int)ch<<endl;
    return0;
    }
    输入:

    12345[Enter]

    输出:

    1234

    -52

    【分析】与cin.get()的样例比較会发现,这里的ch并没有读取缓冲区中的5,而是返回了-52。这里事实上cin>>ch语句没有运行。是由于cin出错了。

    使用方法2:getline(cin,line),接收一行字符串输入并存入字符串line中,按回车结束。

    <span style="font-size:18px;"><span style="font-size:18px;">#include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
         string line;
         getline(cin,line);
         cout<<line<<endl;
         return 0; 
    }</span></span>
    输入:liudandage nihaoa

    输出:liudandage nihaoa


  • 相关阅读:
    C# 正则 获取 Img Src路径
    .NET动态加载用户控件并传值的方法
    ViewState压缩技术
    BookStrap中关于button和图片的注意点
    在idea中使用Git
    了解Git的使用
    javascript-----DOM文档对象模型
    浅谈java集合
    javaI/O流
    二进制和十进制的转换
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6879759.html
Copyright © 2011-2022 走看看