2010-10-26 63 views
1

首先考慮這個樣本C++代碼:如果輸入1我輸入類似「你好鄰居」,然後輸入1被設置爲「良好」獲取空間與C++輸入奈斯利播放流媒體

std::string input1, input2, input3; 
std::cout << "Enter Input 1: "; 
std::cin >> input1; 
std::cout << std::endl << "Enter Input 2: "; 
std::cin >> input2; 
std::cout << std::endl << "Enter Input 3: "; 
std::cin >> input3; 

,輸入2被設置到「日」,輸入3被設置爲「鄰居」。我甚至沒有給過設置input2和input3的值的機會。

所以我的問題是:如何將包含空格的文本字符串輸入到沒有它的單個字符串中(因缺乏更好的術語)會分解並溢出到隨後對輸入流的調用中?

在此先感謝您收到的任何答案。

+0

與fgets。是一個笨蛋會得到鏈接很短.. – brumScouse 2010-10-26 19:55:06

+0

http://stackoverflow.com/questions/1555731/how-to-take-whitespace-in-input-in-c – brumScouse 2010-10-26 19:59:19

+0

可能的重複[我如何迭代cin行line in C++?](http://stackoverflow.com/questions/1567082/how-do-i-iterate-over-cin-line-by-line-in-c) – 2010-10-26 19:59:20

回答

7

您可以使用std::getline

std::getline(std::cin, input1); 
... 
std::getline(std::cin, input2); 
... 
std::getline(std::cin, input3); 
+0

工程就像一個魅力。謝謝。 – 2010-10-26 19:58:08