日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++输入函数的应用

發布時間:2023/12/15 c/c++ 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++输入函数的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近因為找工作的事情,在刷一些編程題,也陸陸續續參加了一些筆試,一般編程中使用的語言是C++,因為編程題會有時間的限制,C++的效率最高,不容易出現超時的問題所以使用最多的語言就是C++。

在編程中,其中最容易遇到的問題就是輸入問題。下面就討論一下C++常用的一些輸入函數。

概述

C++中幾個輸入函數有:

  • cin
  • cin.get()
  • cin.getline()
  • getline()
  • gets()
  • getchar()

cin

  • 輸入數字,以“回車”或者空格結束

    1
    2
    3
    int a,b;
    cin>>a>>b; // 按行輸入對應的參數
    cout<<a+b<<endl;
  • 輸入一個字符串,遇“空格”、“TAB”、“回車”都結束

    1
    2
    3
    char a[20];
    cin>>a;
    cout<<a<<endl;

cin.get()

  • cin.get(str)可以用來接收字符,str為字符數組名。

    1
    2
    3
    char ch;
    ch=cin.get(); //或者cin.get(ch);只能獲取一個字符
    cout<<ch<<endl;
  • cin.get(str,n)用來接收一行字符串,可以接收空格,str為字符數組名,n為接收字符數目。

    1
    2
    3
    char a[20];
    cin.get(a,20); //有些類似getline。可以輸入多個單詞,中間空格隔開。
    cout<<a<<endl;
  • cin.get()沒有參數主要是用于舍棄輸入流中的不需要的字符,或者舍棄回車,彌補cin.get(字符數組名,接收字符數目)的不足.

cin.getline()

  • 接受一個字符串,可以接收空格并輸出

    1
    2
    3
    char m[20];
    cin.getline(m,5); //與上面基本相同。
    cout<<m<<endl;
1
2
3
4
5
輸入:jkljkljkl
輸出:jkljkljkl

輸入:jklf fjlsjf fjsdklf
輸出:jklf fjlsjf fjsdklf

getline()

  • 接受一個字符串,可以接收空格并輸出,需包含#include<string>

    1
    2
    3
    string str;
    getline(cin,str);
    cout<<str<<endl;
1
2
3
4
5
輸入:jkljkljkl //VC6中有個bug,需要輸入兩次回車。
輸出:jkljkljkl

輸入:jkl jfksldfj jklsjfl
輸出:jkl jfksldfj jklsjfl

gets()

  • 接受一個字符串,可以接收空格并輸出,需包含#include<string>

    1
    2
    3
    char m[20];
    gets(m); //不能寫成m=gets();
    cout<<m<<endl;
1
2
3
4
5
輸入:jkljkljkl
輸出:jkljkljkl

輸入:jkl jkl jkl
輸出:jkl jkl jkl
1
2
3
4
5
6
7
8
9
10
11
// 多維輸入
char m[3][20];
for(int i=0;i<3;i++)
{
cout<<"\n請輸入第"<<i+1<<"個字符串:"<<endl;
gets(m[i]);
}

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

getchar()

  • /接受一個字符,需包含#include<string>

    1
    2
    3
    char ch;
    ch=getchar(); //不能寫成getchar(ch);
    cout<<ch<<endl;
1
2
3
4
輸入:jkljkljkl
輸出:j

//getchar()是C語言的函數,C++也可以兼容,但是盡量不用或少用;

常用的應用

  • 輸入單個數字

    1
    2
    int a;
    cin >> a;
  • 輸入多個數字

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // 默認是空格或者回車鍵為間隔
    int a, b;
    cin >> a >> b;


    // 以逗號隔開的多個數字輸入
    int n, m;

    cin >> n;
    }

    if (cin.get() == ',') {
    cin >> m;
    }
  • 輸入一維數組(默認以空格為間隔),#include <vector>

    1
    2
    3
    4
    5
    vector<int> arr(n, 0);

    for (int i = 0; i < m; i++){
    cin >> arr[i];
    }
  • 輸入二維數組(默認以空格為間隔),#include <vector>

    1
    2
    3
    4
    5
    6
    7
    vector<vector<int>> arr(m, vector<int>(n, 0));

    for (int i = 0; i < m; i++){
    for (int j = 0; j < n; j++){
    cin >> arr[i][j];
    }
    }
  • 以,為間隔的輸入數組

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 二維數組,以逗號為間隔
    vector<vector<int>> S(n, vector<int>(m, 0));

    for (int i = 0; i < n; i++){
    cin >> S[i][0];
    for (int j = 1; j < m; j++){
    if (cin.get() == ',') {
    cin >> S[i][j];
    }
    }
    }
  • 輸入不定長的數組(檢測回車鍵)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 定義二維數組
    vector<vector<int>> F(n, vector<int>(n, -1));

    for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
    int temp;
    cin >> temp;
    F[i][j] = temp;
    if (cin.get() == '\n')
    break;
    }
    }
  • 輸入字符串

    1
    2
    3
    4
    // 已知字符串的長度,注意最后一位是\0
    char a[21];
    cin >> a;
    cout << a << endl;

輸入的時候需要加入越界檢測如下,需要0<=n<=100。

1
2
3
if ((n < 0) || (n > 100)) {
return 0;
}

參考:C++中輸入字符串的幾種方法

總結

以上是生活随笔為你收集整理的C++输入函数的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。