我想知道如何在c ++中实现 std::cin
。有人可能会写一个像std::cin
一样工作的伪代码。
答案 0 :(得分:3)
你不能在不使用某些库(或某些特定于目标的汇编程序代码)的情况下在C ++中进行任何输入/输出,因为你需要调用外部输出函数(或某些system call,或者,如果您正在编写操作系统内核或其他一些独立程序,请执行一些IO机器代码指令。)
如果您的编码高于某些operating system(通常是这种情况),您可以进行一些直接的系统调用。在Linux上,它们列在syscalls(2)中(但实际上,您将使用某个系统libc.so
共享library)。在Windows(我不知道)上,确切的(内核级)系统调用集很难获得,但您可以使用与DLL相关的一些系统WinAPI。您可以阅读Operating Systems: Three Easy Pieces以了解有关操作系统的更多信息。
许多 - 但并非所有C++ standard library实施都是free software,并且通常在某些C standard library和/或以上特定于目标的系统调用之上编码。因此,您可以研究C ++标准库的源代码(通常随编译器一起发布,例如在GCC中)和C标准库的源代码(例如GNU libc或musl-libc)
因此,如果您在Linux上使用GCC,请研究其源代码。
BTW cin >>
操作是一大堆重载的std::istream::operator >>
member函数和global函数。