「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Turbo C++ の「cin」が最初の単語だけを読み取るのはなぜですか?

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

2024 年 11 月 5 日に公開
ブラウズ:554

Why Does Turbo C  \'s \

Turbo C の "cin" 制限: 最初の単語のみを読み取る

Turbo C では、"cin" 入力演算子には文字配列を扱うときの制限。具体的には、空白文字 (スペースや改行など) に遭遇するまでのみ読み取ります。これにより、複数の単語の入力を読み取ろうとするときに予期しない動作が発生する可能性があります。

次の Turbo C コードを考えてみましょう:

#include 

class String {
  char str[100];

public:
  void input() {
    cout > str;
  }
  void display() {
    cout 

このコードを実行して「Steve Hawking」と入力すると、出力には文字列全体が表示されることが期待されます。ただし、「cin」の制限により、「cin」は最初の空白文字 (スペース) で読み取りを停止するため、「Steve」のみが表示されます。

制限の克服

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

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

推奨事項

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

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3