2012-03-21 111 views
3

我正在製作命令行字編輯器程序。系統會提示用戶輸入控制字符以更改文件。我在命令「D」中遇到了麻煩,它刪除了單行文本或一系列文本。來自用戶的可選參數C++

input D: 
     D 3  --deletes line 3 
     D 2 8  --deletes lines 2 to 8 inclusively 

如何使第二行是可選的?我有cin < < char < < int < < int,但我找不到一種方法來使可選。

+5

閱讀整行並單獨解析。 – Cameron 2012-03-21 16:58:38

回答

5

std::string line; 
std::getline(std::cin,line); 

,然後手動分析線,第一分割成單詞。

這可能是有用的功能:

void ToWords(const std::string &line, std::vector<std::string> &words); 

但實現留給作爲練習讀者;-)。

+0

剛剛出於好奇,你爲什麼不原型:'std :: vector ToWords(const std :: string&line)'? – 2012-03-21 17:12:17

+0

@MichaelWilson迴避潛在的副本。 – 2012-03-21 17:18:56

+0

謝謝rodrigo! – dajee 2012-03-21 17:53:50