簡體   English   中英

試圖用C ++讀取一行鍵盤輸入

[英]Trying to Read a Line of Keyboard Input in C++

我試圖用C ++完成一項大學任務,並且在應該是一個非常基本的操作時遇到麻煩。 我試圖從鍵盤上讀取一串字符。 這是相關代碼:

  string t;
  cout << endl << "Enter title to search for: ";
  getline(cin, t, '\n');  

我理解,最后一行應該讀取輸入緩沖區(在本例中為cin)並將字符存儲在't'字符串中,直到它到達新行字符,然后繼續程序流程。

但是,當我在XCode中運行我的代碼時,它只是跳過getline函數並將't'視為空字符串。

這是怎么回事? 我嘗試使用cin >> t但這只是永遠讀取字符 - 為什么我不能這樣做?

顯然是跳過輸入操作的原因很可能(這意味着,忽略了一個bugsy XCode IDE的可能特性),你之前已經執行了一些輸入並在輸入緩沖區中留下了一個換行符

要解決這個問題,請確保在邏輯上應該消耗輸入行的每個輸入操作之后清空輸入緩沖區。

一種簡單的方法是始終將getline用於string ,然后如果要將數字規范轉換為數字類型,則使用例如istringstream

干杯&hth。,

文檔頁面看起來你想要的

cin.getline(t,256,'\n');

或類似的東西。

這聽起來像Xcode運行程序的方式有問題。 嘗試直接從終端運行程序,看看這是否足以解決您的問題。

暫無
暫無

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

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