欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C++ cin.getline函數

 更新時間:2020年09月27日 10:19:57   作者:chuyaoxin  
這篇文章主要介紹了C++ cin.getline函數的相關資料,幫助大家更好的理解和學習C++,感興趣的朋友可以了解下

cin

雖然可以使用 cin 和 >> 運算符來輸入字符串,但它可能會導致一些需要注意的問題。
當 cin 讀取數據時,它會傳遞并忽略任何前導白色空格字符(空格、制表符或換行符)。一旦它接觸到第一個非空格字符即開始閱讀,當它讀取到下一個空白字符時,它將停止讀取。

例:
// This program illustrates a problem that can occur if
// cin is used to read character data into a string object.
#include <iostream>
#include <string> // Header file needed to use string objects
using namespace std;

int main()
{
  string name;
  string city;
  cout << "Please enter your name: ";
  cin >> name;
  cout << "Enter the city you live in: ";
  cin >> city;
  cout << "Hello, " << name << endl;
  cout << "You live in " << city << endl;
  return 0;
}

預期結果:

Please enter your name: John Doe
Enter the city you live in: Chicago
Hello, John Doe
You live in Chicago

實際結果:

Please enter your name: John Doe
Enter the city you live in: Hello, John
You live in Doe

在這個示例中,用戶根本沒有機會輸入 city 城市名。因為在第一個輸入語句中,當 cin 讀取到 John 和 Doe 之間的空格時,它就會停止閱讀,只存儲 John 作為 name 的值。在第二個輸入語句中, cin 使用鍵盤緩沖區(qū)中找到的剩余字符,并存儲 Doe 作為 city 的值。

cin.getline()

cin.getline 允許讀取包含空格的字符串。它將繼續(xù)讀取,直到它讀取至最大指定的字符數,或直到按下了回車鍵。

此函數會一次讀取多個字符(包括空白字符)。它以指定的地址為存放第一個讀取的字符的位置,依次向后存放讀取的字符,直到讀滿N-1個,或者遇到指定的結束符為止。若不指定結束符,則默認結束符為'\n'。

這個函數有三個參數,其語法為:cin.getline(字符指針(char*),字符個數N(int),結束符(char));

第一個參數為第一個讀取的字符的位置,通常為數組名。

第二個參數為讀取的字符的個數。

第三個參數是結束符,可以省略,省略則默認為回車鍵結束。

例:
// This program demonstrates cinT s getline function
// to read a line of text into a C-string.
#include <iostream>、
using namespace std;

int main()
{
  const int SIZE = 81;
  char sentence[SIZE];
  cout << "Enter a sentence: ";
  cin.getline (sentence, SIZE);
  cout << "You entered " << sentence << endl;
  return 0;
}

輸出結果:

Enter a sentence: To be, or not to be, that is the question.
You entered To be, or not to be, that is the question.

可以看到,使用cin.getline函數輸入帶有空格的字符串。

在網絡編程中,寫一個簡單的回射程序時,可以使用cin.getline來輸入數據。

#define MAX_LINE 10000
char SendBuffer[MAX_LINE];
cin.getline(SendBuffer, sizeof(SendBuffer));

以上就是詳解C++ cin.getline函數的詳細內容,更多關于cin.getline函數的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解C++實現線程安全的單例模式

    詳解C++實現線程安全的單例模式

    這篇文章主要介紹了C++實現線程安全的單例模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 深入解析C++中的構造函數和析構函數

    深入解析C++中的構造函數和析構函數

    析構函數:在撤銷對象占用的內存之前,進行一些操作的函數。析構函數不能被重載,只能有一個
    2013-09-09
  • C++中的類與對象深度解析

    C++中的類與對象深度解析

    這篇文章主要為大家詳細介紹了C++中的類與對象,使用數據庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C語言實現字符串匹配KMP算法

    C語言實現字符串匹配KMP算法

    相信很多人(包括自己)初識KMP算法的時候始終是丈二和尚摸不著頭腦,要么完全不知所云,要么看不懂書上的解釋,要么自己覺得好像心里了解KMP算法的意思,卻說不出個究竟,所謂知其然不知其所以然是也。
    2014-08-08
  • C++筆記之std::future的用法小結

    C++筆記之std::future的用法小結

    std::future通常由某個Provider創(chuàng)建,與std::async一起使用,本文主要介紹了C++筆記之std::future的用法小結,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • C語言數組越界引發(fā)的死循環(huán)問題解決

    C語言數組越界引發(fā)的死循環(huán)問題解決

    本文主要介紹了C語言數組越界引發(fā)的死循環(huán)問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • QT線程QThread的使用介紹

    QT線程QThread的使用介紹

    在進行桌面應用程序開發(fā)的時候,假設程序在某些情況要處理復雜邏輯, 如果一個線程去處理,就會導致窗口卡頓,無法處理用戶操作。這就需要使用多線程,其中一個線程處理窗口事件,其他線程進行邏輯運算,多個線程各司其職,不僅可以提高用戶體驗還可以提升程序的執(zhí)行效率
    2022-09-09
  • C++ 純虛函數詳解

    C++ 純虛函數詳解

    本文主要介紹了C++ 純虛函數詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 基于C語言EOF與getchar()的使用詳解

    基于C語言EOF與getchar()的使用詳解

    希望本文可以對初學C的朋友提供一點幫助,也希望能和其他朋友進行交流。其中理解不對的地方若能得到指正和建議,本人將不勝感激
    2013-05-05
  • C語言 實現輸入任意多個整數

    C語言 實現輸入任意多個整數

    這篇文章主要介紹了C語言 實現輸入任意多個整數,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論