Turbo C の「cin」が最初の単語だけを読み取るのはなぜですか?

Barbara Streisand
リリース: 2024-10-28 18:07:29
オリジナル
502 人が閲覧しました

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」の制限により、「cin」は最初の空白文字 (スペース) で読み取りを停止するため、「Steve」のみが表示されます。

制限の克服

この制限に対処するには、Turbo C で文字配列を読み取るための代替メソッドを使用できます:

  1. cin.getline(str, sizeof str);
    Thisこのメソッドは、空白文字を含む入力行全体を指定された char 配列に読み取ります。
  2. std::getline(cin, str);
    標準のライブラリでは、このメソッドを使用して行全体を文字列オブジェクトに読み込むことができ、柔軟性が高まります。
  3. 独自の文字列クラスを実装します:
    独自の文字列クラスを定義できます。

推奨事項

現在推奨されるアプローチは、最新の C コンパイラと標準ライブラリを使用することです。これにより、入力行全体を読み取る機能など、より信頼性が高く効率的な入力処理が提供されます。

以上がTurbo C の「cin」が最初の単語だけを読み取るのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!