當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ cin用法及代碼示例


在本教程中,我們將借助示例了解 C++ 中的 cin 對象。

cin 對象用於接受來自標準輸入設備(即鍵盤)的輸入。它在iostream 頭文件中定義。

示例

#include <iostream>
using namespace std;

int main() {
  int num;

  cout << "Enter a number: ";

  // take integer input
  cin >> num;

  cout << "You entered: " << num;

  return 0;
}

輸出

Enter a number: 25
You entered: 25

cin 語法

用法:

cin >> var_name;

這裏,

  • >> 是提取運算符。
  • var_name 通常是一個變量,但也可以是數組、向量、列表等容器的元素。

cin 與提取運算符

"c"cin"character""in"方法"input".因此cin方法"character input".

cin 對象與提取運算符>> 一起使用,以便接收字符流。例如,

int num;
cin >> num;

>> 運算符也可以在同一語句中多次使用以接受多個輸入:

cin >> var1 >> var2 >> … >> varN;

示例 1:帶有提取運算符的 cin

#include <iostream>
using namespace std;

int main() {
  int num1, num2, num3;

  cout << "Enter a number: ";

  // for single input
  cin >> num1;

  cout << "Enter 2 numbers:" << endl;

  // for multiple inputs
  cin >> num2 >> num3;

  cout << "Sum = " << (num1 + num2 + num3);

  return 0;
}

輸出

Enter a number: 9
Enter 2 numbers:
1
5
Sum = 15

cin 與成員函數

cin 對象還可以與其他成員函數一起使用,例如 getline() , read() 等。一些常用的成員函數有:

  • cin.get(char &ch): 讀取輸入字符並將其存儲在 ch 中。
  • cin.getline(char *buffer, int length):將字符流讀入字符串buffer, 當
    • 它已讀取 length-1 字符或
    • 當它找到 end-of-line 字符 '\n' 或文件末尾 eof 時。
  • cin.read(char *buffer, int n): 將流中的 n 字節(或直到文件末尾)讀取到 buffer 中。
  • cin.ignore(int n): 忽略輸入流中的下一個 n 字符。
  • cin.eof(): 如果到達文件末尾 (eof),則返回非零值。

示例 2:帶有成員函數的 cin

#include <iostream>
using namespace std;

int main() {
  char name[20], address[20];

  cout << "Name: ";

  // use cin with getline()
  cin.getline(name, 20);
	
  cout << "Address: ";

  cin.getline(address, 20);


  cout << endl << "You entered " << endl;
  cout << "Name = " << name << endl;
  cout << "Address = " << address;
	
  return 0;
}

輸出

Name: Sherlock Holmes
Address: Baker Street, UK

You entered
Name = Sherlock Holmes
Address = Baker Street, UK

cin 原型

iostream 頭文件中定義的cin 原型為:

extern istream cin;

C++ 中的 cin 對象是類 istream 的對象。它與標準 C 輸入流 stdin 相關聯。

cin 對象確保在第一次構造ios_base::Init 類型的對象期間或之前被初始化。

構造 cin 對象後,cin.tie() 返回 &cout 。這意味著如果有任何字符等待輸出,則 cin 上的任何格式化輸入操作都會強製調用 cout.flush()

相關用法


注:本文由純淨天空篩選整理自 C++ cin。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。