轻量的C++命令行交互器2.0
上次写了一个C++命令行交互器(基于GNU g++),简介看上一篇文章。这次主要增加一点新功能和修复bug。
新功能:
1.上下键回溯,回溯的内容仅限已经输入并使用回车提交的内容,可在普通模式、全模式、半编辑器模式(新功能)下使用上下键回溯,重启程序后回溯列表清空;
2.Ctrl+S保存模式。如果您想在普通模式、全模式保存已使用回车提交的内容,按Ctrl+S即可。输入保存目录(不输入就回车默认程序所在目录)和文件名(不能为空)保存上一次的提交内容。普通模式下使用Ctrl+S会在文件内加入预设模板来组成完整的程序,全模式则不加模板。如下则展示它们的使用方法。
zhang@zhang-b460mak2:~/Desktop$cppsh #启动普通模式 === C++ Interactive Shell === Ctrl+D run, quit exit, Ctrl+S save >>> cout<<"Hello ShaMoHeLan and C++!"<<endl; --- Running --- [Output] Hello ShaMoHeLan and C++! [Save Code] Directory (default: current): Filename: hello.cpp Saved to: /home/zhang/Desktop/hello.cpp >>> quit Bye!hello.cpp的内容:
zhang@zhang-b460mak2:~/Desktop$ cat hello.cpp #include <iostream> using namespace std; int main(void) { cout<<"Hello ShaMoHeLan and C++!"<<endl; return 0; } zhang@zhang-b460mak2:~/Desktop$--full下的Ctrl+S:
zhang@zhang-b460mak2:~/Desktop$ bash ./cppsh.py --full === Full C++ Mode === Ctrl+D run, quit exit, Ctrl+S save >>> #include <iostream> ... using namespace std; ... int main(){ ... cout<<"Hello C++!!!"<<endl; ... return 0;} --- Running --- [Output] Hello C++!!! [Save Code] Directory (default: current): Filename: Hello1.cpp Saved to: /home/zhang/Desktop/Hello1.cpp >>> quit Bye!Hello1.cpp的内容:
zhang@zhang-b460mak2:~/Desktop$ cat Hello1.cpp #include <iostream> using namespace std; int main(){ cout<<"Hello C++!!!"<<endl; return 0;}3.加入半编辑器模式。使用--sture启动该模式,该模式下,需要输入完整的C++代码,使用Ctrl+D编译运行成功后会弹出保存路径和文件名输入提示,不想保存按两次回车即可继续使用。如下:
zhang@zhang-b460mak2:~/Desktop$ bash ./cppsh.py --sture === C++ Sture Full Mode === Ctrl+D run, quit exit, Ctrl+S save >>> #include <iostream> ... using namespace std; ... int main(){ ... cout<<"mmmmm"; ... return 0;} --- Running --- [Output] mmmmm [Save Code] Directory (default: current): Filename: j.cpp Saved to: /home/zhang/Desktop/j.cpp >>> quit Bye!完整的代码在主页资源。免费。
