首頁  >  文章  >  後端開發  >  為什麼 Turbo C 的「cin」只讀第一個字?

為什麼 Turbo C 的「cin」只讀第一個字?

Barbara Streisand
Barbara Streisand原創
2024-10-28 18:07:29503瀏覽

Why Does Turbo C  's

Turbo C 的「cin」限制:只讀取第一個單字

在Turbo C 中,「cin」輸入運算子有一個處理字元數組時的限制。具體來說,它只會讀取直到遇到空白字元(例如空格或換行符)。當嘗試讀取多字輸入時,這可能會導致意外行為。

考慮以下 Turbo C 程式碼:

<code class="c++">#include <iostream.h>

class String {
  char str[100];

public:
  void input() {
    cout << "Enter string: ";
    cin >> str;
  }
  void display() {
    cout << str;
  }
};

int main() {
  String s;
  s.input();
  s.display();
}</code>

如果您執行此程式碼並輸入輸入「Steve Hawking, 「您會期望輸出顯示整個字串。但是,由於“cin”的限制,僅顯示“Steve”,因為“cin”在第一個空白字元(空格)處停止讀取。

克服限制

要解決此限制,您可以使用替代方法在Turbo C 中讀取字元陣列:

  1. cin.getline(str, sizeof str);
    This方法將整行輸入(包括空白字元)讀取到指定的char 陣列中。
  2. std::getline(cin, str);
    如果您有權訪問標準庫中,您可以使用此方法將整行讀入字串對象,這提供了更大的靈活性。
  3. 實作您自己的字串類別:
    您可以定義自己的字串類別更有效地處理輸入和輸出。

建議

現在建議的方法是使用現代 C 編譯器和標準函式庫。這提供了更可靠、更有效率的輸入處理,包括讀取整行輸入的能力。

以上是為什麼 Turbo C 的「cin」只讀第一個字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn