首页 > 解决方案 > 让用户在字符串中间输入(c/c++)?

问题描述

通常,控制台中显示的 c/cpp 字符串只允许用户在其后键入。

有什么简单的方法让用户在输出字符串的中间输入,例如填空:

____ 先生是老师。

std::cout 可以很容易地打印出来,但是如何让用户用简单的代码直接在空白处输入并阅读呢?例如,如果名称很长,则将打印的字符向右移动?

标签: c++cconsole

解决方案


您正在寻找控制控制台/终端。您询问的两种语言都没有任何概念——它们都只知道输入和输出。这是一个简单的抽象,输入和输出是逐个字符,按顺序完成的。输入不必来自键盘,输出不必是屏幕或终端......

控制屏幕内容非常依赖于平台。如果您在 Windows 上,Windows API 提供了一系列用于控制控制台的函数

如果你想做一些跨平台的事情,看看curses. 有许多平台的实现,比如ncurses(通常在 *nix 系统上使用)和pdcurses(这对 windows 来说非常好),它们都提供相同的接口。

要了解curses编程,NCURSES Programming HOWTO是一个好的开始。只需替换#include <ncurses.h>为,#include <curses.h>这样您的代码就不会专门​​绑定到任何实现,ncurses而是适用于任何curses实现。


推荐阅读