社区
C语言
帖子详情
怎么做一个类似dos的交互控制台??
cxxc
2004-04-19 12:20:17
1 我如何读取输入的指令.
2 在无输入的情况下继续原提示符?
请输入你的指令:****
****我怎么得到他进行判断?
请输入你的指令:(回车)
请输入你的指令:
...全文
34
10
打赏
收藏
怎么做一个类似dos的交互控制台??
1 我如何读取输入的指令. 2 在无输入的情况下继续原提示符? 请输入你的指令:**** ****我怎么得到他进行判断? 请输入你的指令:(回车) 请输入你的指令:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
speedfirst
2004-04-20
打赏
举报
回复
用一个大循环,每次读入一个字符串,如果是C的话就实现开一个数组,如果是C++就给一个string变量,然后在循环中依次判断是不是所需的命令。
至于预定义的命令可以编入一个自定义类Command的vector里
class Command
{
public:
Command(string name, long (execute*)(void * paramters));
~Command();
string command_name; //你的命令名
long (command_execute*)(void* paramters); //执行你的命令的函数指针
};
然后给每一个命令定义一个Command实例
然后把他们全都输入一个vector中
主程序中用一个循环,
for(int i = 0; i < command_vector.size(); i++)
{
if(input_command == command_vector[i])
{
if(command_vector[i].command_execute(...实际的参数))
cout<<"success"<<endl;
else
cout<<"fail"<<endl;
break; //去读下一个命令
}
}
这种方法适于大量的命令集程序编写,而已比较容易维护。
xzhuang
2004-04-20
打赏
举报
回复
char get[128];
int getinput ()
{
printf ("qingshuru:");
gets (get);
}
int fun ()
{
getinput ();
do {
if (!strcmp (get, "\n"))
getinput ();
}while(1)
}
cxxc
2004-04-20
打赏
举报
回复
大家还没理解我的意思
我想要的是
请输入:(回车)
请输入:(回车)
请输入:
antijpn
2004-04-20
打赏
举报
回复
读取的方法多了,如果是C的话,开辟一个足够大的数组,然后用scanf或者gets之类的函数读就是了
如果是C++的话更好办,用cin还有string比上面的那个还方便。
Ctrl+C应该是你拦不住的,除非调用系统API去拦截(那这个程序就需要改用Win32SDK写了),如果是DOS下面的程序的话,可能要调用中断程序去处理。
cxxc
2004-04-20
打赏
举报
回复
这个问题本身我就觉得有点弱(智),但我还是不知道无输入如何判定??会出现这样的情况
请输入:
^c
c:
Kernel_Don
2004-04-19
打赏
举报
回复
char cmdstr[256];
for(;;)
{
gets(cmdstr);
if (strcmp(cmdstr,"cmd1")==0)
{
//do something
}
if (strcmp(cmdstr,"cmd2")==0)
{
//do something
}
...
if (strcmp(cmdstr,"cmdn")==0)
{
//do something
}
}
wshcdr
2004-04-19
打赏
举报
回复
对楼主的意思不是特别明白
试回答下
1 我如何读取输入的指令.
用gets()
2 在无输入的情况下继续原提示符?
请输入你的指令:****
****我怎么得到他进行判断?
请输入你的指令:(回车)
请输入你的指令:
在gets()没有得到字符的情况下
就输入指令:
syuui
2004-04-19
打赏
举报
回复
int main( int argc, char *argv[], char *envp[] )
{
... ...
while( strcmp( in_cmd, "exit" )!=0 )
{
// judge the inputted command.
fprintf( stderr, "%s %s$ ", path, userid );
// wait for the next input
}
}
Allemand
2004-04-19
打赏
举报
回复
楼主所说的问题是命令行参数问题,C的main()是可以带参数的,main(char* argv, int argc),好像是这样的,我不记得了,这样,C程序可以象DOS命令一样带参数。楼主可以查阅一下有关书籍,(老谭的书上说得很明白)。argv 指向的就是命令后的字符串,对这个字符串进行扫描,操作,就可以实现楼主所希望的功能了。
zhouqingyuan
2004-04-19
打赏
举报
回复
因为你的指令都是事先定义好的,所以可以直接用字符串存储你输入的,这个直接用(cin)就可以做到,然后和你的指令进行比较进行相应的操作。
没有输入或者无效的输入,都可以进行让他再次输入的操作的。
易语言之匿名管道
DOS
控制台
虽然是bug百出的易语言,但是功能还行吧。这是个匿名管道下写的
DOS
,加个winsock的话就可以
做
成远程shell。仅供代码参考,最后解决:replace命令导致内存泄露
windows编程入门(C语言)
前面我们讲的”黑屏“叫
控制台
应用程序(Win32 Console Application),也称
DOS
程序(或MS-
DOS
程序)。
DOS
是早期的命令式操作系统,很难
做
出漂亮的界面,除了开发人员,”黑屏“对普通用户很不友好。 带界面的程序叫...
MongDB数据库与C#的
交互
(游戏服务器基础)
详细内容如下: 1.MongDB是什么,以及它提供的可视化
控制台
,基础使用都包含哪些知识? 2.MongDB与C#
交互
之中,如何创建连接,如何连接到集合? 3.四大管理操作:增删查改,需要如何进行,异步的方式又是怎么样操作? 4.排序是...
入门学习Linux常用必会60个命令实例详解doc/txt
虚拟
控制台
最有用的是,当
一个
程序出错造成系统死锁时,可以切换到其它虚拟
控制台
工作,关闭这个程序。 shutdown 1.作用 shutdown命令的作用是关闭计算机,它的使用权限是超级用户。 2.格式 shutdown [-h][-i...
python
交互
式环境执行_Python
控制台
实现
交互
式环境执行
Python
控制台
打开之后,会直接进入
交互
式环境,显示提示符“>>>”。而命令行程序则会显示
DOS
的命令提示符,我们需要输入“Python”或者“Python3”进入
交互
式环境。一般来说,顺利安装Python之后,有两种...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章