Heim > Backend-Entwicklung > C++ > Wie lese ich ganze Eingabezeilen einschließlich Leerzeichen mit „cin' von C?

Wie lese ich ganze Eingabezeilen einschließlich Leerzeichen mit „cin' von C?

Patricia Arquette
Freigeben: 2024-10-29 07:49:02
Original
708 Leute haben es durchsucht

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

C „cin“ liest nur das erste Wort

In C ist der Eingabestream-Operator >> Liest normalerweise ein einzelnes Wort von einer Eingabequelle wie der Tastatur. Dies kann problematisch sein, wenn versucht wird, eine Zeichenfolge zu lesen, die Leerzeichen enthält, da nur das erste Wort erfasst wird. Dieses Problem kann beim Arbeiten mit Zeichenarrays auftreten.

Beachten Sie den folgenden Code:

<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;
}
Nach dem Login kopieren

Beim Ausführen dieses Codes in Turbo C 4.5 wird nur das erste Wort einer Zeichenfolge angezeigt. Dies liegt daran, dass cin >> str liest nur ein Wort in das Zeichenarray str. Um eine vollständige Eingabezeile, einschließlich Leerzeichen, zu lesen, ist ein alternativer Ansatz erforderlich.

Eine Möglichkeit besteht darin, die Funktion getline() zu verwenden:

<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>
Nach dem Login kopieren

Dieser Code liest die gesamte Zeile der Eingabe, einschließlich Leerzeichen, in die s-Zeichenfolge. getline() kann auch zum Einlesen in Zeichenarrays verwendet werden:

<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;
}
Nach dem Login kopieren

Alternativ, wenn Sie lieber die >> Operator können Sie den Code wie folgt ändern:

<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>
Nach dem Login kopieren

Mit diesen Änderungen liest der Code die gesamte Eingabezeichenfolge korrekt und zeigt sie an.

Das obige ist der detaillierte Inhalt vonWie lese ich ganze Eingabezeilen einschließlich Leerzeichen mit „cin' von C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage