编程基础 - 栈的应用 - 行编辑问题(Line Editing)
文章目录
1 行编辑问题简述
我们在接收每一个字符时,将进行检测,判断动作。
在C++的标准输入流中,如果使用cin >>
,它在按第一次回车时会将之前的输入放入输入缓冲区,并不会检测换行符\n
;第二次回车才会检测第一次按下的回车。类似的,还有EOF
(Windows下是Ctrl+Z,即^z
),这个的检测需要各位自行进行尝试。
在这里,我们将不使用cin >>
的方式,将使用 cin.get()
,并假设输入中$
为退格符,#
为退行符。
Tips
就算是使用cin.get()
,如果有其它输入流操作,也可能造成两次回车。
2 行编辑(C++ Code)
2.1 头文件main.h
#pragma once
#include <string> // 字符串,用于打印结果
#include <stack> // 栈
2.2 主函数文件main.cpp
#include "main.h"