【发布时间】:2016-11-25 01:41:24
【问题描述】:
在第一个代码块中,编译器没有给出错误。另一方面,第二个代码块给出了错误error: 'cin' in namespace 'std' does not name a type。
第一段代码:
#include <iostream>
int y;
int main(){
std::cout << "Enter something! \n";
std::cin >> y;
}
第二段代码:
#include <iostream>
int y;
int main(){
std::cout << "Enter something! \n";
}
std::cin >> y;
是什么导致了这种行为?我可以修复它吗?
如果您需要更多详细信息,请随时在 cmets 中询问。
【问题讨论】:
-
导致这种行为的原因是它不是有效的 C++ 代码。
-
您只能在函数内运行代码。在函数之外,您所能做的就是声明变量并创建类型。所以
std::cin >> y;在第二个代码块中是非法的 - 编译器的错误说它希望你声明一个变量并且 std::cin 不是一个类型(这是真的 - 它不是) -
@SamVarshavchik 是的,但我想知道为什么它是无效的 C++ 代码。
-
@BoeNoe 几乎所有关于某事是否有效的“为什么”问题的答案都是“因为标准是这样说的”。您想要标准中相关段落的链接吗?
-
@BoeNoe 我觉得两句话不是一个好的答案,所以我把它写成了评论。答案将更深入地解释什么是有效的,什么是无效的,并且可能有例子来支持它。