c++ - 让用户在字符串中间输入(c/c++)?
问题描述
通常,控制台中显示的 c/cpp 字符串只允许用户在其后键入。
有什么简单的方法让用户在输出字符串的中间输入,例如填空:
____ 先生是老师。
std::cout 可以很容易地打印出来,但是如何让用户用简单的代码直接在空白处输入并阅读呢?例如,如果名称很长,则将打印的字符向右移动?
解决方案
您正在寻找控制控制台/终端。您询问的两种语言都没有任何概念——它们都只知道输入和输出流。这是一个简单的抽象,输入和输出是逐个字符,按顺序完成的。输入不必来自键盘,输出不必是屏幕或终端......
控制屏幕内容非常依赖于平台。如果您在 Windows 上,Windows API 提供了一系列用于控制控制台的函数。
如果你想做一些跨平台的事情,看看curses
. 有许多平台的实现,比如ncurses
(通常在 *nix 系统上使用)和pdcurses
(这对 windows 来说非常好),它们都提供相同的接口。
要了解curses
编程,NCURSES Programming HOWTO是一个好的开始。只需替换#include <ncurses.h>
为,#include <curses.h>
这样您的代码就不会专门绑定到任何实现,ncurses
而是适用于任何curses
实现。
推荐阅读
- reactjs - material-ui 选择下拉菜单看起来像一个芯片
- python - 如何初始化这个使用多重继承的派生类?
- node.js - 出了点问题,查询留在了编译的代码中
- c++ - 在实例化类模板时使用内部类模板时出现编译器错误
- r - 添加一个箭头(位于绘图之外),它指向 x 轴并且是 R 中 ggarrange 绘图的一部分
- angular - Angular AOT 产生 NG8001、NG8002 和 NG8003 错误
- java - 没有代码重复的 Java Entity 和 BusinessObject
- php - 为什么我在不使用 get 方法时不断收到“The GET method...”?
- amazon-web-services - 为什么 terraform 试图重建已经提供的基础设施?
- javascript - 按图标从顶部滑入下拉移动菜单