是否有 C++ 的 std::cin 等价物?

时间:2020-12-29 19:52:22

标签: c++ c

我正在尝试将此代码从 C++ 转换为 C:

int num{0};
std::cin >> num;

我需要一个相当于 std::cin 的东西。我已经试过了:

int num = 0;
fgets (num, 0, stdin);

我能做什么?

2 个答案:

答案 0 :(得分:3)

<块引用>

是否有 C++ 的 std::cin 等价物

不是真的。 C++ std::cin 表示 std::istream 类的一个特定实例,>>(格式化输入)运算符对其有许多重载(至少其中一个是模板化的)。因此,一个操作符可以有效地处理各种不同的输入类型。

与 C 最接近的是 stdin 文件句柄,它(一般来说)表示与 std::cin 相同的输入流。但是,尽管您可以在 formatted input operations 中使用 stdin(如 fscanf),但您也可以使用更通用的 scanf 函数(使用相同的输入流)。

但是,您需要明确为每种输入类型指定格式选项(使用 %d 表示 int 类型),如下所示:

    int num = 0;
    scanf("%d", &num);

或者,对于更“一般”的情况:

    int num = 0;
    fscanf(stdin, "%d", &num);

答案 1 :(得分:0)

使用 scanf ("%d", &var); scanf 会将输入的值直接放入 var 中。 它将等到用户按 Enter 或任何其他键。