用户:
Lonely_wanderer查看:139 回复:6 评论:21 创建时间:2020-03-10T15:28:00
Hello,大家好!因为最近好久都没更新了,今天,我们就来,做一个命令提示符
话不多说,先上代码:
#include <iostream>
using namespace std;
int main(){
char s[256];
cout << "###命令提示符### >>>";
while(gets(s)){
system(s);
cout << "###命令提示符### >>>";
}
return 0;
}
好啦,首先,我们现需要引用一个头文件
#include <iostream>
然后写基础框架
就不说了,emmmm
接着,定义一个用来字符存储,其实数组多长都可以,只是不能太短,要用来存储指令的……
char s[256] ;
我们指令的字符,可是,只能存储一个字符,并不足以存储输入的指令,便需要定义一个字符串数组
(我也不知道为什么不用字符串,好像是字符串识别不了吧)

接着,就输出一个指令的格式(这样看起来视觉更好一些,毕竟是模仿命令提示符吗……)
cout << "###命令提示符###>> " ;
然后,就一直循环输入,为了防止他没有存储带有空格的命令(因为C++输入字符串一般都是以空格截止的)
所以,就需要判断他按下回车为止,存储进s……
我们就需要重复执行按下回车后输入命令
while(get(s)){}
在接着,就是整个贴的重点了!
调用我们的system函数:
system(s);
把我们的指令传进去……

最后,防止只输出一次“提示”,所以就在system后面,加个输出就ok啦!
好啦,今天就讲到这里了……
bye!
反正是个球其实,还有一个方法
就是用string
然后:
siring cmdcode;
cin>>cmdcode;
if(cmdcode=="dos") //括号里面的字符串就是命令的执行
{
//执行输入"dos"后的指令
}
//下面以此类推点赞1
评论
应该是,不过,我测试string的时候报错了
报什么错?
错误代码有吗?
不太清楚
额,那个好像不能用cin,因为有一些指令是有空格的,需要用getline() 例如:color 0A
char应该可以
不可能啊?
我测过了
string是可以执行cin操作的
我试过,用的是VS2019
getline要在字符数组里面用吧
oh?string不是以空格为结束吗?
emmm,没有把,你用的是什么?推荐你使用VS2019
WindowsAPI好像只支持C风格字符串……(就是char数组),像文件路径也要用char
好像......是的
您好,这篇帖子有一个重大的错误:您没有导入windows.h的头文件
由于此BUG,导致编译不通过
点赞1
评论
额,好像忘记加了
不过,我没有windows。h的也可以
system可以不需要这个头文件
真的……
是cstdlib吧