ホームページ > バックエンド開発 > C++ > C \ の `cin` を使用してスペースを含む入力行全体を読み取る方法は?

C \ の `cin` を使用してスペースを含む入力行全体を読み取る方法は?

Patricia Arquette
リリース: 2024-10-29 07:49:02
オリジナル
713 人が閲覧しました

How to Read Entire Lines of Input Including Spaces with C  's `cin`?

C "cin" は最初の単語のみを読み取ります

C では、入力ストリーム演算子 >> が使用されます。通常、キーボードなどの入力ソースから 1 つの単語を読み取ります。最初の単語のみがキャプチャされるため、スペースを含む文字列を読み取ろうとする場合に問題が発生する可能性があります。この問題は、文字配列を操作しているときに発生する可能性があります。

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

<code class="c++">#include <iostream.h>
#include <conio.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();
     return 0;
}
ログイン後にコピー

このコードを Turbo C 4.5 で実行すると、文字列の最初の単語のみが表示されます。これは、cin>>だからです。 str は、str 文字配列に 1 つの単語だけを読み取ります。スペースを含む入力行全体を読み取るには、別のアプローチが必要です。

1 つのオプションは、getline() 関数を使用することです。

<code class="c++">#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;
    cout << "Enter string :";
    getline(cin, s);
    cout << s;
    return 0;
}</code>
ログイン後にコピー

このコードは行全体を読み取ります。 s 文字列への入力 (スペースを含む)。 getline() を使用して文字配列を読み取ることもできます。

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

int main()
{
    char str[100];
    cout << "Enter string :";
    cin.getline(str, sizeof str);
    cout << str;
    return 0;
}
ログイン後にコピー

あるいは、>> を使用したい場合は、

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

class String
{
    char str[100];
    public:
    void input()
    {
        cout << "Enter string :";
        cin.getline(str, sizeof str);
    }

    void display()
    {
        cout << str;
    }
};

int main()
{
     String s;
     s.input();
     s.display();
     return 0;
}</code>
ログイン後にコピー

これらの変更により、コードは入力文字列全体を正しく読み取って表示します。

以上がC \ の `cin` を使用してスペースを含む入力行全体を読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート