Stupid  2019-11-04 17:30 采纳率: 0%
浏览 1664

linux QT下error: use of undeclared identifier '_getch'怎么解决?

图片说明

一开始是头文件conio.h找不到,已经更改为curses.h

之后使用"_getch()"又提示use of undeclared identifier,无解,求各位大神解答一下,谢谢了

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-29 20:19
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    _getch() 是一个 C 编程语言中的函数,用于获取用户键盘输入。在 Linux 环境中,可以通过 STDIN_FILENO 获取标准输入流的句柄,并调用 read 函数来读取数据。

    在您的情况下,您尝试在 C++ 中使用 _getch() 函数。由于 C++ 和 C 之间的兼容性问题,C++ 中无法直接访问到 C 的全局变量或函数。因此,在 C++ 中调用 _getch() 将导致编译错误。

    要解决这个问题,您可以考虑以下方法:

    1. 使用其他替代方案:考虑使用其他方式从键盘获取输入,例如使用 std::cin.get() 或者在 C++ 中提供自己的输入处理逻辑。

    2. 移除 _getch() 函数:如果可能的话,将 _getch() 函数移出 C++ 代码,因为它不是一个 C++ 标准库的一部分。

    3. 使用外部库:考虑使用现有的库(如 Boost.Asio 或 libevent)来提供类似功能。

    请确保在尝试解决问题时,先检查是否真的需要使用 _getch()。通常来说,除非有特殊原因,否则使用 C 库提供的替代方案会更为合适。

    评论

报告相同问题?