std :: cin如何在cpp中工作

时间:2018-05-24 06:47:11

标签: c++ cin

我想知道如何在c ++中实现 std::cin 。有人可能会写一个像std::cin一样工作的伪代码。

1 个答案:

答案 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 libcmusl-libc

因此,如果您在Linux上使用GCC,请研究其源代码。

BTW cin >>操作是一大堆重载的std::istream::operator >> member函数和global函数。