c++ - 当用户在 C++ 上键入时,如何检查用户的输入?

标签 c++ scanf

作为一名新程序员,我正在做一些培训练习,以适应 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,您也不需要它。

我只是告诉你该怎么做(我不会写代码!):

你还没有告诉你正在编码的平台假设它的窗口

  1. 您应该使用名为 getche() 的函数。它从用户处获取一个字符

  2. 声明一个 bool 变量,用于保存括号和尖括号的状态。

  3. 输入 getche()在循环中运行函数,并在遇到“(”或“<”时将变量设置为 false。

  4. 如果您遇到结束括号(我的意思是“)”或“>”),请将该变量设置为 true。

  5. 在应用程序结束时检查变量状态。如果为真,则表示没有遇到错误,否则用户有错误。

最后我给你举了一个例子

示例:

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/

相关文章:

c++ - 命名类时使用命名空间或前缀供应商名称?

c - 使用 sscanf 检查字符串格式

c - scanf 正在跳过扫描

c - scanf 忽略,无限循环

c - fscanf - 在将整数存储到数组之前执行算术运算

c++ - 如何使用 umdh.exe 在所有堆中跟踪内存泄漏?

c++ - 如何读取 C++ 中系统调用失败时显示的失败日志消息?

c++ - 如何使用标准跨度进行边界检查?

c++ - 在 header (.h) 中声明构造函数然后在类文件 (.cpp) 中定义构造函数的语法 C++

c - scanf() 在操作系统中如何工作?