作为一名新程序员,我正在做一些培训练习,以适应 Windows 上的 C++。
从用户处获取字符串类型的输入并形成:
(any word) || (any word || <any word || any word> || (any word> etc.
如果出现以下情况,实时警告用户:
() or/and <> Are closed before the input ends.
例如,如果用户键入:
(I am ok
当时我必须警告他,括号已打开但尚未关闭。
由于我是初学者,所以我对如何继续感到有点迷失,我不喜欢现成的解决方案,而是喜欢一种继续的方法。
- 我使用代码块 IDE 和 GCC 编译器。
提前致谢。
最佳答案
首先,这是 C++ 而不是 C,因为我们在 C 中没有称为命名空间的东西。std 是一个 nampesapce。因此,正如注释中所解释的那样,我们在 C 中没有 std::flush,您也不需要它。
我只是告诉你该怎么做(我不会写代码!):
你还没有告诉你正在编码的平台假设它的窗口
您应该使用名为
getche()
的函数。它从用户处获取一个字符声明一个 bool 变量,用于保存括号和尖括号的状态。
输入
getche()
在循环中运行函数,并在遇到“(”或“<”时将变量设置为 false。如果您遇到结束括号(我的意思是“)”或“>”),请将该变量设置为 true。
在应用程序结束时检查变量状态。如果为真,则表示没有遇到错误,否则用户有错误。
最后我给你举了一个例子
示例:
typedef int boolean; /* Just ignore it. Just know it declares boolean type. */
boolean brastate, angbrackstate;
char ch = getche();
while(ch != EOF) {
if( ch == '<') {
angbrackstate = false;
... /* Do the remaining yourself as you like challenges!!! */
祝你好运!
关于c++ - 当用户在 C++ 上键入时,如何检查用户的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33436088/