是否有输入类型在输入一定数量的字符后自动结束

Is there an input type that automatically ends after a certain number of characters has been entered?

本文关键字:输入 字符 结束 类型 是否      更新时间:2023-10-16

我目前正在为我的数据结构类创建一个基于控制台/文本的Alchemy版本,并且有兴趣在每个"回合"阶段限制输入,但我找不到有关输入限制的任何信息。

我的想法很简单(理论上(,出现输入提示:

Input symbol coords--
X:_    Y:

我想做的是限制要输入的字符数,这意味着输入"5"后,输出将更改为:

Input symbol coords--
X:5    Y:_

(_指示光标的位置(

重点是无需用户按回车键("输入"(即可发生这种情况。我的主要绊脚石是,一旦调用了cin.get((或cin语句,它就会在读取任何其他代码之前完成(自然(。

char x;
char y;
cout << "X: ";
cin.get(x); //conditions to halt after receiving 1 char input
cout << "X: " << x << "  Y: ";
cin.get(y); //conditions to halt after receiving 1 char input
cout << "X: " << x << "  Y: " << y << endl;

问:此功能在 C++ 控制台应用程序中是否可行?
如果是这样,将如何实施?

我不

认为这是对我原始问题的直接回答,但它按我的预期工作。关键部分:库 "conio.h" 和函数 getch((,它返回按下的键的整数值。

#include <conio.h>
...
char x;
char y;
cout << "X: ";
x = getch();
cout << x << "  Y: ";
y = getch();
cout << y << endl;
char t; //keeping the console open
cin >> t; //keeping the console open

在此之后,两个 char 变量都保存正确的值。

终端

有一个"原始模式"

在原始状态下,终端设备驱动程序在 无需组装数据行的时间。

在这里,您可以找到更多信息:http://www.lafn.org/~dave/linux/terminalIO.html

这是一个关于stackoverflow的类似问题,答案如下:使终端输入在一定数量的字符后发送