2017-08-03 5 views

Antwort

1

Ich bin ein bisschen verwirrt, was Sie hier fragen, aber ich habe hier etwas bemerkt, dass festgelegt werden kann .

Ja der Code, den Sie kompiliert haben und es funktioniert. Es könnte jedoch verbessert werden. Wenn Sie aufgefordert werden, etwas in Ihr char Array einzugeben, werden Sie bemerken, dass es keine Leerzeichen akzeptiert. Wenn ich also Jon Smith eingib, ist der Ausgang nur Jon und der Rest des String-Eingangs ist abgeschnitten. Um dies zu beheben, müssen Sie die Funktion getline() aufrufen.

Die documentation of getline() Zustände:

Extracts Zeichen aus ist und speichert sie in str bis zur Abgrenzung Zeichen delim gefunden wird (oder das Zeilenende-Zeichen, '\ n' ..)

Dadurch können Sie Whitespaces von der Eingabe abrufen und die gesamte Eingabe zurück in eine string.

Wenn Sie diese Funktion aufrufen, um Ihren Code hinzufügen, in dem die zweite Eingabeaufforderung liegt und Sie den Code auszuführen, würden Sie, dass Sie nur einmal erhalten Sie dazu aufgefordert werden feststellen, und dann würde das Programm beenden vor die zweite Aufforderung erscheint ausgeführt werden. Dies liegt daran, dass getline() führende Leerzeichen nicht ignoriert und es nicht weiter liest, da cin>> vor diesem Zeichen als Zeilenvorschubzeichen angezeigt wird.

Um getline() mit cin>> zu arbeiten, müssen Sie cin.ignore() vor dem Anruf zu getline() verwenden. Unten ist ein Code, den ich schrieb, um diese Einstellung zu machen:

// Example program 
#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    int n; 
    string s; //using string allows us to use getline() 

    cout<<"Enter a number: "; //Let user know they are being prompt for number 
    cin>>n; 
    cin.ignore(); //ignore the leading newline 

    cout<<"Enter a string: "; //let user know being prompt for string 
    getline (cin,s); 

    cout<<n*2<<"\n"; 
    cout<<s; 
    return 0; 
} 

Wieder der Code, den Sie arbeiten und kompilieren. Ich bin nicht sicher, ob meine Lösung die Antwort ist, die Sie erhoffen, aber ich hoffe, dass Sie in der Lage sind, dieses nützliche zu finden! Prost!

+0

Sicher .. Danke ..: D – Koran

Verwandte Themen