簡體   English   中英

Getline 總是忽略輸入的第一個字 c++

[英]Getline always ignoring first word of input c++

我在使用這段代碼時遇到了問題。 我希望它包含 2 個單詞,但它總是忽略第一個單詞然后使用第二個單詞。 如果我輸入 3 個詞,它會完美地工作並拾取最后的 2 個詞。 對此的提示是這些要點。

  • 提示用戶輸入他/她的名字和姓氏。
  • 使用 getline 方法從鍵盤讀取名稱並將其存儲到名為 fullName 的變量中(您需要聲明您使用的任何變量)。
  • 打印出全名。
  • 編譯、調試和運行,使用您的名字作為測試數據。
  • 由於我們正在添加到同一個程序,每次運行該程序時,我們都會在當前任務的 output 之前從先前的任務中獲取 output。

你如何使它正常工作?

string fullName;
cout << "What is your full name" << endl;
    cin >> fullName;
getline(cin, fullName);
    cout << fullName << endl;
cout << endl;
cin >> fullName;

讀取全名的第一個單詞。

getline(cin, fullName);

在第一個單詞之上讀取名稱的 rest。 計算機程序完全按照您的指示進行操作,如果這是錯誤的做法,則不會表現出零憐憫。

所以給定約翰·雅各布·金格海默·施密特

cin >> fullName; // reads John into fullname
getline(cin, fullName); // reads  Jacob Jingleheimer Schmidt into fullname, 
                        // replacing John
cout << fullName << endl; // prints  Jacob Jingleheimer Schmidt

解決方案

刪除cin >> fullName;

getline(cin, fullName); // reads John Jacob Jingleheimer Schmidt into fullname, 
cout << fullName << endl; // prints John Jacob Jingleheimer Schmidt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM