当前位置 : 主页 > 编程语言 > c语言 >

c++中cin实现输入字符串方式

来源:互联网 收集:自由互联 发布时间:2023-02-01
目录 c++ cin如何输入字符串 1、cin 2、cin.get() 3、cin.getline() 4、getline() c++ cin输入 不定长输入 c++ cin如何输入字符串 1、cin cin会过滤掉不可见字符(如空格、回车、tab等)。 如果不想略过
目录
  • c++ cin如何输入字符串
    • 1、cin
    • 2、cin.get()
    • 3、cin.getline()
    • 4、getline()
  • c++ cin输入 不定长输入

    c++ cin如何输入字符串

    1、cin

    cin会过滤掉不可见字符(如空格、回车、tab等)。

    如果不想略过空白字符,可以使用noskipws流控制。

    cin>>noskipws>>input[i]

    2、cin.get()

    cin.get()可以用来接收字符

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

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

    cin.get()默认接收一个字符,以tab键、space键和enter键结束。

    3、cin.getline()

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

    cin.getline(m,5)

    接收5个字符到m中,其中最后一个为‘\0’,所以只看到4个字符输出。

    4、getline()

    接收一个字符串,可以接收空格并输出,需包含#include

    getline(cin,str);

    c++ cin输入 不定长输入

    C++ 不定长输入,保存进数组,并打印

    #include<iostream>
    #include<vector>
    using namespace std;
     
    int main() {
        vector<int> arr;
        int i;
        do {
            cin >> i;
            arr.emplace_back(i);
        } while (cin.get() != '\n');
        for (auto it = arr.begin(); it != arr.end(); it++) {
            cout << *it << " ";
        }
        cout << endl;
        return 0;
    }

    输出

    1 2 3 4 5 6 7
    1 2 3 4 5 6 7

    cin.get()获取输入一个字符,包含空格或换行等特殊字符,cin自动忽视空格或换行等特殊字符,cin读取一个个数字,cin.get()读取空格...以此交叉读取。

    #include<iostream>
    #include<vector>
    using namespace std;
     
    int main() {
        vector<int> arr;
        int i;
        while (cin.get() != '\n') {
            cin >> i;
            arr.emplace_back(i);
        } 
        for (auto it = arr.begin(); it != arr.end(); it++) {
            cout << *it << " ";
        }
        cout << endl;
        return 0;
    }

    输出

    1 2 3 4 5 6 7
    2 3 4 5 6 7

    cin.get()读取第一个数字,cin忽视第一个空格读取第二个数字,cin.get()读取第二个空格...以此交叉读取,因此第一个数字1没被cin读取。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

    网友评论