EE_DSnP 板


LINE

澄清一下: 1. myStrGetTok() 的回传值就是 找到 token 之後 下一个字元 (defined by "delimiter") 的 index. 2. 如果找不到想要的 token, 就回传 string::npos. 你可以将 string::npos 想成 string end or illegal position. 3. 你不应该使用 string::npos 的值, 即使印出来的值是 -1. 但是你可以比较 myStrGetTok() 的回传值 是否为 string::npos 以判断是否有找到 token 4. 最重要的是: 其实有 CmdExec::lexSingleOption() 以及 CmdExec::lexOptions() 可以用来 parse command options. 请多加利用. ※ 引述《fp60403 (雨萧)》之铭言: : 标题: [问题] string::npos : 时间: Sat Nov 7 18:16:30 2009 : : : 想问一下string::npos到底是怎麽看它的@@ : : 像在parserCmd中我大概这样用: : : string cmd; : CmdExec* e = 0; : size_t n = myStrGetTok(str,cmd); : if (n == string::npos) return 0; : else : {...後续的东西} : : 然後就变得很奇怪,当输入只有cmd不加option的时候 : 例如: : mcalc> gg : <- 直接跳走 : mcalc> : : 用ddd看的时候发现它没有进後面的else. : 可是按照有抓到token的情况不是会回传end吗@@? : 还是我理解有错误? : : 还请不吝解惑QQ : : 恩改判断cmd的状况就可以解决。 : : 这是里面myStrGetTok的其中一个回传(另一个是传token的长度) : : if (begin == string::npos) { tok = ""; return begin; } : : 所以还是想问一下,为什麽拿size_t n接到的东西用string::npos来判断会有问题? : 那如果说是最後有拿到token的时候, : 回传的n是token长度(也就是myStrGetTok里的end), : 它不是应该不会和string::npos相等吗? : : : : : -- :



※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.112.247.78 : 推 a3785lexx:我个人是把npos理解成string结束的位置... 11/07 18:35 : → a3785lexx:而且myStrGetTok的回传值我记得是你的token的长度?? 11/07 18:36 : → a3785lexx:其实我也不是很确定.... 11/07 18:37 : → a3785lexx:如果我的理解刚刚好是对的话...用长度(n)去比位置(npos) 11/07 18:38 : → a3785lexx:本身是有点诡异的....@@" 11/07 18:38 : 推 jylcyl:呃,我找资料的结果,事实上npos=-1 11/07 18:39 : → jylcyl:我对myStrGetTok的解读是它会回传command name後面第一个空 11/07 18:42 : → jylcyl:格的index,如果command name後面就没有空格的话就回传npos 11/07 18:44 : → jylcyl:所以如果tok有东西,後面却没有option,它会回传npos 11/07 18:46 : 推 jylcyl:npos好像不是位置,它是-1 11/07 18:51 : → jylcyl:http://www.cppreference.com/wiki/string/npos 11/07 18:51 : → fp60403:嗯楼上npos在我问之前就查过了所以才会觉得奇怪@@ 11/07 18:53 : → jylcyl:阿我刚才好奇去写了小程式cout npos的值,结果不是-1,囧 11/07 18:54 : ※ 编辑: fp60403 来自: 140.112.247.78 (11/07 18:55) : 推 jylcyl:恩...我的理解是只要没有option就会回传npos,即使tok里面是 11/07 19:03 : 推 keyboardle:npos是size_t的最大值.所以是int的-1应该是没错 11/07 19:04 : → jylcyl:有字串也一样,所以用npos来判断tok是有问题的 11/07 19:04 : 推 jylcyl:感谢楼上的讲解,我用static_cast来输出npos真是就是-1了 11/07 19:08 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.41.216
1F:推 INsoarDEEP:所以是string::npos只能用来判断,不能当作值来使用? 11/07 19:53
2F:推 fp60403:谢谢教授和上一篇的同学们! 11/07 19:54
3F:→ fp60403:不过第四点来说 lex看起来是给option用的吧0...0 11/07 19:55
4F:→ fp60403:他的error的部份都是"xxx options!" 11/07 19:55
5F:→ ric2k1:yes, they are for command options 11/07 20:38







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP