Re: [问题] readCmd()

楼主: ric2k1 (Ric)   2012-10-29 00:49:46
我来贴一下:
bool
CmdParser::readCmd(istream& istr)
{
resetBufAndPrintPrompt();
bool newCmd = false;
while (!newCmd) {
ParseChar pch = getChar(istr);
if (pch == INPUT_END_KEY) {
if (_dofile != 0)
closeDofile();
break;
}
switch (pch) {
...
case NEWLINE_KEY : newCmd = addHistory();
cout << char(NEWLINE_KEY);
if (!newCmd) resetBufAndPrintPrompt();
break;
...
case TAB_KEY : { char tmp = *_readBufPtr; *_readBufPtr = 0;
string str = _readBuf; *_readBufPtr = tmp;
listCmd(str);
break; }
...
}
#ifdef TA_KB_SETTING
taTestOnly();
#endif
}
return newCmd;
}
以上是跟作业二不一样的部分,
当然,"addHistory()" 改成 return bool,
所以只要加入新的 command 到 _history 之后 newCmd 就会变成 true.
※ 引述《XDucka (Duck)》之铭言:
: 老师的hw3.doc里面提到readCmd的定义
: bool
: CmdParser::readCmd(istream& istr)
: {
: resetBufAndPrintPrompt();
: bool newCmd = false;
: while (!newCmd) {
: ParseChar pch = getChar(istr);
: if (pch == INPUT_END_KEY) {
: if (_dofile != 0)
: closeDofile();
: break;
: }
: switch(ch) {
: ... // Refer to the codes in homework #2
: }
: }
: return newCmd;
: }
: 我想问一下就是这个fuction里面感觉完全没有动到newCmd
: 也就是说return的值应该都是false吧??
: 但是我用gdb想debug的时候(输入help)却发现他变成true传回来了
: 为什么T_T
作者: ypf791 (路人1号)   0000-00-00 00:00:00
作者: vegired (翠玉白菜)   0000-00-00 00:00:00
作者: XDucka (Duck)   0000-00-00 00:00:00

Links booklink

Contact Us: admin [ a t ] ucptt.com