程序总是返回二进制">>":找不到哪个运算符采用了类型为error的左操作数

Tom*_*ard 2 c++ temperature

所以我已经设定了使用以下等式在C++中创建温度转换器的任务:

Celsius = (5/9)*(Fahrenheit – 32)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经提出了这个问题(我从一开始就删除了10行评论,所以代码发布在第11行,如果这有任何意义)

#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>

using namespace std;

int main ()
{ 
float celsius;
float farenheit;

std::cout << "**************************" << endl;
std::cout << "*4001COMP-Lab5-Question 1*" << endl;
std::cout << "**************************" << endl << endl;
std::cout << "Please enter a temperature in farenheit: "; 
std::cin >> farenheit >> endl;
std::cout << "Temperature (farenheit): " << endl;
std::cout << "Temperature (celsius): " << celsius << endl;
std::cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)

每当我尝试运行这个程序时,每次都会出现一堆错误:

1> m:\ visual studio 2010\projects\week 5\week 5\main.cpp(26):error C2678:binary'>>':找不到运算符,它接受类型为'std :: basic_istream的左手操作数<_Elem,_Traits>'(或没有可接受的转换)

我已经尝试了所有我能想到的东西来摆脱这个错误,但它每次都会重新出现,任何关于如何解决这个问题的想法?

Cod*_*ash 9

std::cin >> farenheit >> endl;
Run Code Online (Sandbox Code Playgroud)

该声明无效.>> endl从中删除.

std::cin >> farenheit ;
Run Code Online (Sandbox Code Playgroud)

此声明仅在您有效时才有效cout.像这儿.

std::cout << farenheit << endl ;
Run Code Online (Sandbox Code Playgroud)

原因是endl用于输出新行的结束字符.因此只有输出流接受它.你可以看一下更多的返回值和原型cincout这里.

http://en.cppreference.com/w/cpp/io