错误C2678:二进制'>>' :没有找到哪个运算符采用'std :: istream'类型的左手操作数(或者没有可接受的转换)

时间:2013-09-30 13:15:16

标签: c++

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

错误表明它来自第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    }

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

在我的情况下,当我这样做时出现错误:

25

显然,&lt;&lt; operator不会因为volatile int而过载,从而删除了'volatile'。是解决方案。