首页 > 解决方案 > 为什么我必须在包含后写 std::cin?

问题描述

据我所知,<iostream>标题包含输入/输出所需的一切。但是为什么我们在likestd::之前又写了命名空间呢?cinstd::cin>>var;

#include <iostream>

int main(int argc, char const *argv[]) {
    int var;
    std::cin>>var;
    return 0;
}

标签: c++namespaces

解决方案


标头定义了命名空间内<iostream>的变量。cinstd

如果您想在不使用命名空间前缀的情况下使用它,那么您可以使用

using namespace std;

包含头文件后,但请阅读为什么是“使用命名空间std;” 被认为是不好的做法?.

作为妥协,你可以做

using std::cin;

仅将std::cin自身拉入当前范围,仅此而已。


推荐阅读