【发布时间】:2012-04-24 02:50:02
【问题描述】:
我想在我的 C(仅 C)程序中解析用户输入命令。示例命令:
add node ID
add arc ID from ID to ID
print
exit
等等。然后我想用 ID 做一些验证并将它们转发给指定的函数。函数和验证当然已经准备好了。都是关于解析和匹配函数的......
我已经用很多 ifs 和 strtoks 做到了,但我确信这不是最好的方法......有什么想法(库)吗?
【问题讨论】:
-
程序是在使用它的命令行参数,还是在读取键盘或文件? ID 是什么?
-
我通常使用循环和 if 语句来完成它,我怀疑是否有一个用于处理 shell 命令的库。如果你愿意,也许你可以有一个标识类型命令的第一个字母并使用 switch 语句(-P 是打印,-R 是添加类型命令,-E 是退出,等等)
-
这不是命令行参数,而是在程序运行时从键盘读取用户命令。类似于 Python 中的“shlex”。
-
如果你想用 C 实现你自己的 shell,你看过这个相关的问题:stackoverflow.com/q/1500004/1025391 吗?有许多对您有用的链接。
-
已经尝试过 GNU libreadline? cnswww.cns.cwru.edu/php/chet/readline/rltop.html
标签: c parsing shell command ansi