我正在尝试将此代码从 C++ 转换为 C:
int num{0};
std::cin >> num;
我需要一个相当于 std::cin
的东西。我已经试过了:
int num = 0;
fgets (num, 0, stdin);
我能做什么?
答案 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 或任何其他键。