'cin' 未命名类型 [已关闭]

'cin' does not name a type [closed]

提问人:VMSM 提问时间:5/29/2021 最后编辑:VMSM 更新时间:5/29/2021 访问量:960

问:


这个问题是由一个错别字或一个无法再重现的问题引起的。虽然类似的问题可能在这里成为主题,但这个问题的解决方式不太可能帮助未来的读者。

2年前关闭。

#include <iostream>
#include <string.h>
using namespace std;

/* Variables */
int N = 0;
int M = 0;
int Px, Py;
int gcount = 0;
cin >> N >> M;
string maze[100];

/* Define Functions */
void read_maze(int);
void scan_maze(int);
void print_maze();

这是我正在制作的基于文本的游戏的代码片段,当我运行它时,我收到以下错误:

main.cpp:10:1: error: 'cin' does not name a type
   10 | cin >> N >> M;
      | ^~~

我无法调试代码问题。有什么想法吗?

编辑:Atom

操作系统:Windows 10

编制者:MinGW

谢谢

C++ 标准 IOSTREAM CIN

评论

4赞 Vlad from Moscow 5/29/2021
您不得将此声明 cin >> N >> M;在函数之外,例如在 main 之外。
0赞 CodeLurker 5/29/2021
奇怪的是,全局命令现在被降级了。
2赞 πάντα ῥεῖ 5/29/2021
我建议你从一本好书开始,而不是试图通过反复试验来学习像 c++ 这样的复杂语言。不过,这里不是辅导你的地方。
0赞 Peter 5/29/2021
cin是一个对象(其类型为 )。只能在功能块中读取。您正在尝试读取功能块外部。在功能块之外,唯一允许的是声明(类型、变量和函数)。 是一个语句,并且此类语句仅在功能块中有效。std::istreamcincin >> N >> M

答:

1赞 2 revsZeta #1

您必须在函数内部使用语句,例如

#include <iostream>

int main() {
    /* Variables are fine at global scope, but you should prefer local ones */
    int N = 0;
    int M = 0;
    int Px, Py;
    int gcount = 0;
    
    /* Here's the problematic statement from before */
    std::cin >> N >> M;
    ...
}