如何在C++中读取并立即丢弃一些数据,而不存储这些数据

How to read and immediately discard some data in C++, without storing it?

本文关键字:数据 存储 C++ 读取      更新时间:2023-10-16

我正在做一个有竞争力的编程问题,他们需要输入一些值,我根本不需要在其中使用。我只想输入这个值,然后立即丢弃它,而不以任何方式存储它。

在C中,我们可以这样做:scanf("%d %*c %d", &a, &b);中间字符将被读取并丢弃,而不会有任何麻烦。

在C++中实现这一点的方法是什么?

您可以添加额外的层来拥有它,比如:

template <typename T>
struct discarded
{};
template <typename T>
std::istream& operator >> (std::istream& is, discarded<T>)
{
T t;
return is >> t;
}

然后

int a;
int c;
std::cin >> a >> discarded<int>() >> c;

演示

如果您只想使用变量的值一次,请使用它,然后使用同一变量来存储其他值(覆盖它,这与丢弃变量的值相同(,无论如何,局部变量的范围仅限于特定块。