2013-09-30 75 views
0

我发现这个编译错误很奇怪。 错误C2678:二进制'>>':找不到操作符需要类型'std :: istream'的左手操作数(或没有可接受的转换) 我正在编译MVC++ Express 2010下面是代码:错误C2678:二进制'>>':找不到操作符找到类型'std :: istream'的左侧操作数(或没有可接受的转换)

错误表明它来自第8行。

1 int m; 
2 vector <string> grid; 
3 
4 cin >> m; 
5 
6 for(int i=0; i<m; i++) { 
7  string s; 
8 cin >> s; 
9  grid.push_back(s); 
10 } 
+0

您能否显示您的标题? – billz

+0

你是否包含了所有必要的标题? – taocp

+0

很显然,你缺少头文件(和标准库中名称前面的'std ::')。除此之外,即使编译完成,代码也会被破坏,因为您正在使用'>>'的结果而未验证操作是否成功。 –

回答

5

您需要#include <string>。此外,如果您没有添加#include <iostream>#include <vector>

+2

如果我将它们包括在内,但仍然有这个问题? – Arkady

1

您需要#include<string>#include<iostream>

相关问题