2012-03-21 43 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